Solución:
Esto hará lo que quieras. Establezca visibleTotal en el tipo de datos apropiado para el total y cambie los objetos ws y rng para que coincidan con lo que tiene en su libro de trabajo.
Sub SumVisible()
Dim ws As Worksheet
Dim rng As Range
Dim visibleTotal As Long
Set ws = ThisWorkbook.Sheets("Sheet1")
Set rng = ws.Range("B1:B7")
ws.AutoFilterMode = False
rng.AutoFilter field:=1, Criteria1:=5
visibleTotal = Application.WorksheetFunction.Sum(rng.SpecialCells(xlCellTypeVisible))
' print to the immediate window
Debug.Print visibleTotal
End Sub
En caso de que solo desee sumar parte del rango filtrado (por ejemplo, filtra en la columna A pero desea la suma de la columna B), consulte esta pregunta y respuesta: Copiar / Pegar / Calcular celdas visibles de una columna de una tabla filtrada.
Si necesita CONTAR el número de elementos visibles en una lista filtrada, utilice la función SUBTOTAL, que ignora automáticamente las filas que están ocultas por un filtro.
La función SUBTOTAL puede realizar cálculos como RECUENTO, SUMA, MÁX, MIN, PROMEDIO, PRODUCTO y muchos más (consulte la tabla a continuación). Ignora automáticamente los elementos que no están visibles en una lista o tabla filtrada. Esto lo hace ideal para mostrar cuántos elementos están visibles en una lista, el subtotal de filas visibles, etc. También proporciona filas de control ocultas manualmente.
La solución a su pregunta sería contar la cantidad de filas que no están en blanco visibles en la Columna A y la Columna B cuando un filtro está activo, use:
AtmCurrentSum = Application.WorksheetFunction.Subtotal(109, Range("$X$3:$X$4533"))
Puntos para recordar cuando aplica la fórmula SUBTOTAL:
- Cuando número_función (primer argumento) está entre 1-11, SUBTOTAL incluye valores que se ocultan manualmente pero ignoran los ocultos por filtro.
- Cuando núm_función está entre 101-111, SUBTOTAL excluye todo tipo de valores ocultos.
- En las listas filtradas, SUBTOTAL siempre ignora los valores de las filas ocultas, independientemente del número_función.
- SUBTOTAL ignora otros subtotales que existen en las referencias se ignoran para evitar el doble conteo
- SUBTOTAL solo funciona con valores de datos verticales dispuestos verticalmente.
- En las columnas horizontales ocultas, los valores siempre se incluyen y nunca se ignoran.