
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:
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)/96
obtenga 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