Como calcular a soma das alturas de linha para linhas filtradas

1

Histórico: Eu tenho uma planilha que puxa dados de um banco de dados para criar rótulos de produtos (usando fórmulas de pesquisa de correspondência de índice). A folha tem uma macro que gravei, filtra as linhas em branco e autofits as linhas restantes. (Eu não estou muito familiarizado com o VBA, então, por favor, perdoe 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 concluirá todas essas tarefas quando o número do produto for inserido; Filtre as linhas em branco e autofit as linhas restantes, medir a altura da linha para cada uma das linhas restantes e obter o total combinado para as alturas de linha para aparecer (preferencialmente na célula B2). (ou seja, "Row Heights: 64")

Toda e qualquer ajuda é apreciada e agradeço antecipadamente!

    
por C. Conklin 10.12.2015 / 19:28

2 respostas

1

Com dados filtrados como:

Codifiquecomo:

SubTotalHeight()DimHowTallAsLongDimKountAsLongHowTall=0Kount=0Fori=2To25Setr=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

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

NOTA:

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

    
por 10.12.2015 / 20:06
1

Para obter a altura / contagem de uma maneira variável, rápida e fácil, basta colocar o 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 a saída =getCount(B4:B25)&" "&getHeight(B2:B25)/96 para obter a contagem e a altura ... mas lembre-se de que o ppi muda com as configurações, a resolução e o tamanho do monitor (talvez seja necessário obter o ppi real e mudar o /96 , mas há toneladas de maneiras rápidas de fazer isso ... basta olhar aqui ou usar o google)

Para a configuração do filtro e a altura automática, a "macro de registro" é um começo perfeito, agora você precisa definir o filtro de maneira variável. Para obter o filtro variável, apenas grave enquanto o altera e, em seguida, substitua o valor do filtro por Range("A1").Value (altere A1 para qualquer célula que você queira 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

    
por 10.12.2015 / 20:34