Jump to content
vanenqn

Numerar celdas visibles..

Recommended Posts

Hola a todos, queria hacer una consulta, tengo este codigo:

 

Public Sub Worksheet_Selection_Change(ByVal Target As Range)
Dim nFilas As Long
Dim nFila As Long
Dim i As Long
nFilas = Cells(Rows.Count, 4).End(xlUp).Row
nFila = 1
For i = 11 To nFilas + 11
    If Cells(i, 4) = "" Then Cells(i, 27) = ""
    If Cells(i, 4) <> "" Then
        Cells(i, 27) = nFila
        nFila = nFila + 1
    End If
Next
End Sub

con ese código numero las filas en el rango deseado, desde la celda 11 hacia abajo las que hayan..

el tema que yo aplico filtro y obvio la cantidad total se reduce de q se 20 aprox.. a 5 filas.. el tema que ese código numero perfecto pero no le importa las ocultas, también las numera resultando las filas visibles en números no correlativos, o sea mostrando el numero que le corresponde si no hubiera filtro...

ahora yo encontré esta opción para agregar:

SpecialCells(xlCellTypeVisible)

pero no se como se podrá agregar al código que puse mas arriba, o sea seria acá calcule:

 

nFilas = Cells(Rows.Count, 4).End(xlUp).Row SpecialCells(xlCellTypeVisible) pensé que podría adaptarlo..pero obvio no se como..si alguien me puede dar una mano seria genial, o con otro código que solo me numere las celdas de la columna que están visibles también...bueno gracias de antemano, saludos

 

 

Share this post


Link to post
Share on other sites

Public Sub Worksheet_Selection_Change(ByVal Target As Range)
Dim nFilas As Long
Dim nFila As Long
Dim i As Long
nFilas = Cells(Rows.Count, 4).End(xlUp).Row
nFila = 1
For i = 11 To nFilas + 11
    If Cells(i, 4) = "" Then Cells(i, 27) = ""
    If Cells(i, 4).SpecialCells(xlCellTypeVisible) <> "" Then
        Cells(i, 27) = nFila
        nFila = nFila + 1
    End If
Next
End Sub

Share this post


Link to post
Share on other sites
Hace 4 horas, vanenqn dijo:

o con otro código que solo me numere las celdas de la columna que están visibles

usar macros (Y el evento '_selectionchange') vacía la pila de niveles para un deshacer / undo / ctrl+Z

prueba con una formula para auto-numerar que se auto-ajuste al cambiar los autofiltros (p.ej.)
suponiendo que la numeración va a ser en la columna A, a partir de la fila 2

[A2] =subtotales(3,b$2:b2)

-> copias/arrastras/... la fórmula de [A2] hasta la última fila (misma columna) de tu rango con autofiltros

OJO con el separador de argumentos, mi sistema usa a la coma " , "

Share this post


Link to post
Share on other sites

Hola gracias por la respuesta a los 2...

Hector lo de arrastrar con formula en la celda no me sirve, la hoja practicamente no se toca es todo por formularios, por eso necesito macros, gracias igual...

Leopoldo tu modificación seria lo mejor para este caso pero me sale error de no coinciden los tipos...

 

 

Share this post


Link to post
Share on other sites

@avalencia.... se me barrio... otra vez😂😂😂

Private Sub Worksheet_Activate()
Dim nFilas As Long, i As Long, nFila As Long, Celda As Range
    nFilas = Cells(Rows.Count, 4).End(xlUp).Row
    nFila = 1
    For Each Celda In Range("D" & 11 & ":D" & nFilas).SpecialCells(xlCellTypeVisible)
        If Celda = "" Then Celda.Offset(0, 23) = ""
        If Celda <> "" Then
            Celda.Offset(0, 23) = nFila
            nFila = nFila + 1
        End If
    Next Celda
End Sub

Saludos.

P.D.: PODERME IR TRANQUILO A CENAR...

Share this post


Link to post
Share on other sites



×
×
  • Create New...

Important Information

Privacy Policy