Excel - Uma macro para copiar / colar um intervalo selecionado

Questão

Eu tenho um resumo dos dados por mês em uma planilha e os dados brutos em outra planilha. Em vez de criar várias planilhas para meus dados brutos para cada mês, quero apagar os dados do mês anterior e substituí-los por novos dados. Para fazer isso eu terei que copiar as fórmulas que criaram o resumo para outra coluna (para o novo mês) e então copiar e colar o valor dos dados de resumo do mês atual (assim, uma vez que os dados brutos da fonte mudaram, isso não mudaria valores lá).

Exemplo

 ABCD Jan Fev Mar Abr 1 5 6 7 

Eu gostaria que meu resultado final parecesse (ou seja, copie de A3: A6 e cole no B3. Então, no próximo mês, ele copiará do B3: B6 e colará no C3, e assim por diante).

 ABCD Jan Fev Mar Abr 1 1 5 5 6 6 7 7 

Jan e Feb são os mesmos no momento, porque o copiar e colar acontecerão antes de novos dados brutos terem sido substituídos.

Espero que faça sentido. Eu tenho muito pouco conhecimento em escrever VB, mas consigo ler e entender os mais simples. Alguém poderia me ajudar com uma macro que fará isso automaticamente?

Solução

Esta macro usa uma caixa de entrada para perguntar em qual mês você está atualizando. Use valores numéricos em vez de digitar no mês. Exemplo: Jan. = 1, fev. = 2, Mar. = 3. Estou supondo que você não deseja atualizar janeiro, portanto a macro sairá se 1 for digitado na caixa de entrada (a menos que seja atualizado a partir de dezembro, podemos alterar isto).

Espero que isto ajude.

 Sub Update_Month () Dim answer Como variante Dim jj = 3 answer = InputBox ("Que mês você está atualizando?" & VbCrLf & _ "Ex: janeiro = 1, fevereiro = 2, março = 3, etc.") Selecionar resposta do caso Caso 1 Sair Sub Caso 2 Para j = 3 a 6 Alcance ("B" & j) = Alcance ("A" & j) Próximo j Caso 3 Para j = 3 a 6 Alcance ("C" & j) = Alcance ( "B" & j) Próximo j Caso 4 Para j = 3 a 6 Alcance ("D" & j) = Alcance ("C" & j) Próximo j Caso 5 Para j = 3 a 6 Alcance ("E" & j ) = Faixa ("D" & j) Seguinte j Caso 6 Para j = 3 a 6 Alcance ("F" & j) = Alcance ("E" & j) Próximo j Caso 7 Para j = 3 a 6 Alcance (" G "& j) = Faixa (" F "& j) Próximo j Caso 8 Para j = 3 a 6 Alcance (" H "& j) = Alcance (" G "& j) Próximo j Caso 9 Para j = 3 6 Faixa ("I" & j) = Faixa ("H" & j) Próximo j Caso 10 Para j = 3 a 6 Faixa ("J" & j) = Faixa ("I" & j) Próxima j Caso 11 Para j = 3 a 6 Alcance ("K" & j) = Alcance ("J" & j) Próximo j Caso 12 Para j = 3 a 6 Alcance ("L" & j) = Alcance ("K" & j) Próximo j End Select End Sub 

Observe que

Obrigado ao WutUp WutUp por essa dica no fórum]

Artigo Anterior Próximo Artigo

Principais Dicas