Macro do Excel para procurar dados de um banco de dados e copiá-los para outro arquivo ou planilha do Excel

0

Eu tenho um arquivo excel que procura e calcula dados para uma determinada data. Funciona da seguinte maneira: Você insere a data em uma célula específica (entrada) e na mesma planilha aparecem os dados necessários (20 células). (os cálculos, etc ... são feitos em outra folha)

Agora, quero criar um arquivo do Excel que resuma todos esses dados sem precisar inserir a data e copiar os dados manualmente.

O que a macro deve fazer é: para cada data, altere o valor dessa célula de entrada específica, copie os dados de saída e cole-os em uma nova planilha (próxima à data).

Alguma ideia de como isso pode ser feito? Eu trabalhei com macros há muito tempo e esqueci a maior parte da sintaxe.

    
por Bart 14.11.2013 / 14:14

1 resposta

0

como eu vejo, você tem uma matriz de dados de entrada em dim my_array(10) esta é a sua matriz, que armazena 10 valores
digamos, você tem 3 planilhas, primeiro é onde você insere dados "Planilha1", segundo é onde você deseja salvar a saída "Planilha2" e terceiro, onde todos os cálculos estão concluídos, não vamos tocá-los.
vamos começar a preencher nossa matriz com valores:
my_array = Array(1, 2, 3, ..., 9)
agora vamos fazer um loop para passar por todos os valores de entrada e salvar os valores de saída:
for i = 1 to 10
Worksheets(1).Range("A1").Value = my_array(i)

onde "A1" é a célula na primeira folha, onde você cola sua entrada. Vamos supor que você receba a saída na célula "A2" na planilha1 e queira armazená-la no collumn "A" na planilha2:
Worksheets(2).Cells(i, 1).Value = Worksheets(1).Range("A2").Value
Não esqueça de fechar o loop:
Next
Assim, obtemos o código, que leva 10 valores codificados e salva a saída para a coluna "A" na planilha2, texto completo:
dim my_array(10)
Private Sub macro1()
my_array = Array(1, 2, 3, ..., 9)
for i = 1 to 10
Worksheets(1).Range("A1").Value = my_array(i)
Worksheets(2).Cells(i, 1).Value = Worksheets(1).Range("A2").Value
Next
End sub

    
por 14.11.2013 / 14:40