Como calcular a soma das alturas das linhas para linhas filtradas

Como calcular a soma das alturas das linhas para linhas filtradas

Fundo: Eu tenho uma planilha que extrai dados de um banco de dados para criar rótulos de produtos (usando fórmulas de pesquisa de correspondência de índice). A planilha possui uma macro que gravei que filtra as linhas em branco e ajusta automaticamente as linhas restantes. (Não estou muito familiarizado com VBA, então desculpe minha ignorância)

Planilha: Os dados são preenchidos em duas colunas (B e C) e 25 linhas. Preciso de ajuda para criar uma macro que complete todas essas tarefas assim que o número do produto for inserido; filtre as linhas em branco e ajuste automaticamente as linhas restantes, meça a altura da linha para cada uma das linhas restantes e obtenha o total combinado para que as alturas das linhas apareçam (de preferência na célula B2). (ou seja, "Alturas das linhas: 64")

Toda e qualquer ajuda será apreciada e desde já agradeço!

Responder1

Com dados filtrados como:

insira a descrição da imagem aqui

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

Informará o número de linhas visíveis e a altura total dessas linhas.

OBSERVAÇÃO:

A unidade de altura é umapontar, onde cada ponto é 0,013888889 polegadas(com zoom de 100%). Isso pressupõe que você não esteja usando o jumbotron como monitor.

Responder2

Para obter a altura/contagem de forma variável, rápida e fácil basta colocar no seu 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

em seguida, basta colocar na célula que você deseja que a saída =getCount(B4:B25)&" "&getHeight(B2:B25)/96obtenha a contagem e a altura ... mas lembre-se de que o ppi muda com suas configurações, resolução e tamanho do monitor (então você pode precisar obter o ppi real e alterar o /96, mas existem inúmeras maneiras rápidas de fazer isso... basta olhar aqui ou usar o Google)

Para a configuração do filtro e da altura automática apenas "gravar macro" é um começo perfeito, agora você precisa configurar o filtro de forma variável. Para obter o filtro variável, basta gravar enquanto o altera e depois substituir o valor do filtro por Range("A1").Value(altere A1 para qualquer célula que você deseja usar como filtro)

Se você ainda tiver problemas para fazer isso, basta perguntar no StackOverflow (mas você precisa mostrar o código do que você já tem ou eles podem ficar bravos): P

informação relacionada