Usuário com melhor resposta
Macro pra copiar uma série de numero

Pergunta
-
Uma macro que copie e substitua seletivamente (só quando tenho dados nas células), ou seja, copie A3 para L3, B3 para M3, C3 para N3, D3 para O3 e E3 para P3. Mantendo os demais dados das colunas L, M,N,O e P. Então sempre que houver dados nas colunas ABCDE eles podem ser copiados em substituição aos existentes em LMNOP.
Obrigado pela Ajuda César.
A B C D E L M N O P 1 2 4 6 10 17 2 6 91 9 13 26 3 56 35 48 32 25 4 22 14 18 22 4 6 149 18 22 27 5 14 193 22 26 29 ... 23 236 26 30 32 250 30 280 30 34 34 quarta-feira, 29 de dezembro de 2010 20:10
Respostas
-
Tente isso:
Sub LP_ATUAL() For AO = 4 To 250 A = Range("a" & AO).Value If A <> "0" Then Range("A" & AO & ":" & "E" & AO).Select Selection.Copy Range("L" & AO).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Range("A1").Select Exit For End If Next AO End Sub
Como sou garoto novo no VBA, imagino que da linha 24 até a 250 devem estar seus somase(...
Essa macro pega o valor maior que zero na Coluna A e seleciona os dados de A até E e cola como valores nas colunas L até P da mesma linha e retorna o cursor até A1.
Teste e me fale.
Com absoluta certeza nossos amigos conhecedores de VBA tem uma macro mais eficiente. Mas essa funcionou no meu.
Abs,
- Marcado como Resposta Sessentão aprendriz quinta-feira, 30 de dezembro de 2010 09:35
quinta-feira, 30 de dezembro de 2010 00:28
Todas as Respostas
-
Não é difícil não.
Pergunta1: há dados nas colunas F/G/H/I/J/K??
Pergunta2: Somente uma fileira (linha) por vez ou pode ter mais de uma?
Pergunta3 : Há fórmulas (cálculos) nas colunas A/B/C/D/E ou os números são inseridos e o resto das células estão vazias?
Tô vendo seu post...
quarta-feira, 29 de dezembro de 2010 21:51 -
Mandrix
Pergunta 1: Não (na real tem uma coluna) poderia ser ao inves de L/M/N/O/P G/H/I/J/K
Pergunta 2: sempre uma fileira só por vez
Pergunta 3: sim tem em todas as células a formula =somase(.....)
Já tenho uma macro que copia quando é um célula só, mas não sei como fazer para uma linha completa como exemplo. Eu Poderia repetir a macro, no entando teria que repetir em torno de 25 vezes a mesma rotina e estou procurando algo para simplificar.
Para copiar uma célula a macro que uso é esta a seguir:
Sub LP_ATUAL()
Application.ScreenUpdating = False
Sheets("LP").Select
For AO = 4 To 250
A = Range("O" & AO).Value
If A <> "0" Then
Range("AO" & AO).Select
ActiveCell.FormulaR1C1 = A
Else
End If
Next AO
Sheets("LP").Selectquarta-feira, 29 de dezembro de 2010 22:26 -
Tente isso:
Sub LP_ATUAL() For AO = 4 To 250 A = Range("a" & AO).Value If A <> "0" Then Range("A" & AO & ":" & "E" & AO).Select Selection.Copy Range("L" & AO).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Range("A1").Select Exit For End If Next AO End Sub
Como sou garoto novo no VBA, imagino que da linha 24 até a 250 devem estar seus somase(...
Essa macro pega o valor maior que zero na Coluna A e seleciona os dados de A até E e cola como valores nas colunas L até P da mesma linha e retorna o cursor até A1.
Teste e me fale.
Com absoluta certeza nossos amigos conhecedores de VBA tem uma macro mais eficiente. Mas essa funcionou no meu.
Abs,
- Marcado como Resposta Sessentão aprendriz quinta-feira, 30 de dezembro de 2010 09:35
quinta-feira, 30 de dezembro de 2010 00:28 -
Só adaptei a minha situação real e funcionou muito bem. Era o que eu precisava.
Grato feliz ano 2011
quinta-feira, 30 de dezembro de 2010 09:37