Cómo calcular la suma de las alturas de las filas para filas filtradas

Cómo calcular la suma de las alturas de las filas para filas filtradas

Fondo: Tengo una hoja que extrae datos de una base de datos para crear etiquetas de productos (usando fórmulas de búsqueda de coincidencia de índice). La hoja tiene una macro que grabé que filtra las filas en blanco y ajusta automáticamente las filas restantes. (No estoy muy familiarizado con VBA, así que perdonen mi ignorancia)

Hoja de cálculo: Los datos se completan en dos columnas (B y C) y 25 filas. Necesito ayuda para crear una macro que completará todas estas tareas una vez que se ingrese el número de producto; filtre las filas en blanco y ajuste automáticamente las filas restantes, mida la altura de la fila para cada una de las filas restantes y obtenga el total combinado para que aparezcan las alturas de las filas (preferiblemente en la celda B2). (es decir, "Altos de fila: 64")

¡Cualquier ayuda es apreciada y gracias de antemano!

Respuesta1

Con datos filtrados como:

ingrese la descripción de la imagen aquí

Código como:

Sub TotalHeight()
   Dim HowTall As Long
   Dim Kount As Long
   HowTall = 0
   Kount = 0

   For i = 2 To 25
      Set r = Cells(i, "A").EntireRow
      If Not r.Hidden Then
         HowTall = HowTall + r.RowHeight
         Kount = Kount + 1
      End If
   Next i

   MsgBox Kount & vbCrLf & HowTall
End Sub

Le indicará el número de filas visibles y la altura total de esas filas.

NOTA:

La unidad de altura es unapunto, donde cada punto mide 0,013888889 pulgadas(al 100% de zoom). Esto supone que no está utilizando el jumbotron como monitor.

Respuesta2

Para obtener la altura/recuento de una manera variable, rápida y fácil, simplemente ingrese su módulo:

Public Function getHeight(rng As Range) As Long
  getHeight = rng.Height
End Function

Public Function getCount(rng As Range) As Long
  getCount = rng.SpecialCells(xlCellTypeVisible).Rows.Count
End Function

luego simplemente ingrese la celda en la que desea que la salida =getCount(B4:B25)&" "&getHeight(B2:B25)/96obtenga el recuento y la altura... pero tenga en cuenta que los ppi cambian con su configuración, resolución y tamaño del monitor (por lo que es posible que necesite obtener los ppi reales y cambiar el /96, pero hay toneladas de formas rápidas de hacerlo... solo mira aquí o usa Google)

Para configurar el filtro y la altura automática, simplemente "grabar macro" es un comienzo perfecto, ahora necesita configurar el filtro de forma variable. Para obtener el filtro de variable, simplemente grabe mientras lo cambia y luego reemplace el valor del filtro con Range("A1").Value(cambie A1 a cualquier celda que desee usar como filtro)

Si aún tienes problemas para hacerlo, simplemente pregunta en StackOverflow (pero debes mostrar el código de lo que ya tienes o se pueden enojar): P

información relacionada