Estou escrevendo uma função de macro no Excel para organizar um conjunto de dados de vendas mensais. O formato original usa 6 linhas por entrada, e a tabela organizada usa apenas 1. O número de vendas muda todo mês, então eu preciso descobrir uma maneira de identificar quantas entradas de vendas existem para que eu saiba até que ponto estender minhas fórmulas.
No final dos dados brutos, aparece sempre a palavra "ASSINADO:" na segunda coluna, por isso usei as funções indireta e de correspondência para determinar o quanto preencher as fórmulas. O código que eu usei é assim:
Application.Goto Reference:= _
"INDIRECT(""T"" & (MATCH(""SIGNED:"",RawData!C2:C2,0)-3)/6+1)"
Range("T2", Selection).Select
Selection.FillDown
E funcionou bem inicialmente, exceto que, aparentemente, às vezes, os dados brutos não usam 6 linhas, porque às vezes a função match com as entradas acima não retorna um número inteiro. Então eu tentei usar uma função de teto em torno da função de jogo para garantir que eu recebo um número inteiro, e achei que ficaria bem se estivesse desligado por um ou dois, pois isso é facilmente tratado manualmente. O que eu escrevi é assim:
Application.Goto Reference:= _
"INDIRECT(""T"" & Ceiling((MATCH(""SIGNED:"",RawData!C[-20],0)-3)/6+1),1))"
Range("A2", Selection).Select
Selection.FillDown
Agora eu recebo um erro e não consigo descobrir o porquê. Tem a ver com o formato do número retornado pela função teto? Eu agradeceria muito qualquer ajuda para chegar a uma solução, ou talvez até mesmo uma abordagem diferente para encontrar o número de entradas de vendas.
Obrigado!
fonte