Algo comum no uso do Excel como base de dados, é a necessidade de copiar alguns dados de uma determinada planilha, para a próxima linha disponível em outra.
Para resolver esta situação criei uma UDF que retorna a próxima linha disponível em uma determinada planilha.
'Desenvolvida por Bruno Leite 'bruno_silva_leite@yahoo.com.br Function RetornaLin(Sht As String, Col As String) Dim UltLinPlan As Long 'Retorna a última linha da Planilha UltLinPlan = Sheets(Sht).Range("A65536").End(xlDown).Row 'Retorna a linha na planilha RetornaLin = Sheets(Sht).Range(Col & UltLinPlan).End(xlUp).Offset(1, 0).Row End Function Sub CopiaLinhas() 'Uliliza a função criada para buscar a linha para inserção Dim Lin As Long 'Busca primeira linha disponível da plan2 na coluna A Lin = RetornaLin("plan2", "A") 'copia o intervalo A5:Z5 para a linha retornada pela função Plan1.Range("A5:Z5").Copy Plan2.Range("A" & Lin) End Sub
No exemplo acima também mostro como usar esta UDF para descobrir em qual linha a informação será inserida.
Notem quem na function RetornaLin, usei a seguinte linha
UltLinPlan = Sheets(Sht).Range("A65536").End(xlDown).Row
Com esta linha busco qual a última linha disponível na planilha, o número 65536 refere a última linha em planilhas até a versão 2003, por este motivo a uso como referência, caso seja uma versão mais nova será retornado 1048576 , buscando a última linha disponível acima disto.
Bom é isto ai por hoje, uma função simples que pode ajudar bastante na cópia de dados.
1 comentários:
Gostaria de uma ajuda se possível!
No meu caso, possuo um arquivo .xls com 500 planilhas (1;1.1;1.2-...-1.500), cada planilha possui uma coluna que vai de A1 até A518.
Tenho que montar uma matriz com essas colunas, por isso, gostaria de aplicar um script que viabilizasse postar as colunas de cada planilha uma do lado da outra em uma única planilha.
Muito Obrigado!
Postar um comentário