Saltar al contenido

Numerar celdas visibles..


vanenqn

Recommended Posts

publicado

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

 

 

publicado

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

publicado
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 " , "

publicado

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...

 

 

publicado

@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...

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.