Conteo de registros filtrados

Tengo una base de datos, la cual estoy filtrando por medio de diferentes criterios, y necesito contar los datos que me quedan después de realizar cada uno de los filtros.

1 Respuesta

Respuesta
1
¿Tu filtras con una macro?
Si, filtro con una macro desarrollada en un formulario
Puedes usar esta formuala
=SUBTOTALES(103;A2:A100)
o
En la barra de estado, a la derecha, un poco antes de donde suele poner NUM, hay un recuadro.
Pulsas botón derecho, verás un menú que pone NINGUNA, PROMEDIO, CUENTA, ETC.
Selecciona CUENTA.
Luego seleccionas la columna que quieres y ese recuadro te indica cada vez cuantos hay en el filtro.
Por ejemplo, si tienes 400 filas y solo se han filtrado 68, te pondrá Cuenta=68, a lo que hay que descontar una por el titulo, te quedan 67.
Si todas las celdas son numéricas, puedes seleccionar en su lugar la opción CUENTA NUM. y te dará directamente 67.
Me pareció buenas las dos formas
¿Pero cómo logro esto desde el macro?
Hmm por eso te pregunte vamos a ver como lo puedo lograr esperaba esta pregunta dame un momento miro
Puedes agregar en el modulo esta función
Sub Count_Filtered_Rows()
    Dim UpperLeftCorner As Range
     Set UpperLeftCorner = Sheets("hoja1").Range("A1")
    RowCount = -1
    For Each area In _
        UpperLeftCorner.CurrentRegion.SpecialCells(xlVisible).Areas
        RowCount = RowCount + area.Rows.Count
    Next
    MsgBox RowCount & "  filas"
End Sub
Luego después de el código de filtro la llamas así:
call Count_Filtered_Rows
Te va a arrojar un msge con el numero de valores...
Cuando estoy depurando el código
Sub Count_Filtered_Rows()
    Dim UpperLeftCorner As Range
     Set UpperLeftCorner = Sheets("hoja1").Range("A1")
    RowCount = -1
    For Each area In _
        UpperLeftCorner.CurrentRegion.SpecialCells(xlVisible).Areas
        RowCount = RowCount + area.Rows.Count
    Next
    MsgBox RowCount & "  filas"
End Sub
Me saca este mensaje... No se ha definido la variable y me señala área (la palabra que se encuentra en negrilla)
A mi si me funciona
Mejor enviame el archivo yo miro que estas haciendo mal
Mi correo es [email protected]
O agregalo así
Sub Count_Filtered_Rows()
Dim area As Variant
    Dim UpperLeftCorner As Range
     Set UpperLeftCorner = Sheets("hoja1").Range("A1")
    RowCount = -1
    For Each area In _
        UpperLeftCorner.CurrentRegion.SpecialCells(xlVisible).Areas
        RowCount = RowCount + area.Rows.Count
    Next
    MsgBox RowCount & "  filas"
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas