Logo Hardware.com.br
gabrielmaia.gm
gabrielmaia.... Novo Membro Registrado
14 Mensagens 0 Curtidas

[Resolvido] Excel - Copiar e Colar de diversas planilhas

#1 Por gabrielmaia.... 23/03/2017 - 14:31
Meus amigos, Boa tarde
Estou tendo dificuldades e muitas em copiar e colar de diversas planilhas em uma.
Ex. preciso copiar as celulas E11 a E18 de todas as abas que estão renomeadas.
Existe algo para facilitar este trabalho?
Obrigado.
Gabriel

Anexos

osvaldomp
osvaldomp Geek Registrado
753 Mensagens 558 Curtidas
#3 Por osvaldomp
25/03/2017 - 19:19
Olá, Gabriel.
Se você quiser experimentar esta solução via macro, instale o código abaixo em um módulo comum, assim:

1. copie o código daqui
2. a partir da planilha em que estão os dados tecle 'Alt+F11' para acessar o editor de VBA
3. no menu do editor >> Inserir >> Módulo
4. cole o código na janela em branco que vai se abrir
5. feito! 'Alt+Q' para retornar para a planilha e testar

para rodar o código (mantenha a planilha "Plan1" como a planilha ativa):
6. tecle 'Alt+F8' >> selecione a macro correspondente >> Executar, ou insira um botão na planilha e vincule-o à macro ou vincule-a a um atalho de teclado (Alt+F8 > Opções).

Sub ReplicaDados()
Dim i As Long
For i = 2 To Sheets.Count
Cells(Rows.Count, 3).End(3)(2).Resize(, 8) = _
Application.Transpose(Sheets(i).[E11:E18])
Next i
End Sub
Osvaldo
gabrielmaia.gm
gabrielmaia.... Novo Membro Registrado
14 Mensagens 0 Curtidas
#4 Por gabrielmaia....
25/03/2017 - 22:19
osvaldomp disse:
Olá, Gabriel.
Se você quiser experimentar esta solução via macro, instale o código abaixo em um módulo comum, assim:

1. copie o código daqui
2. a partir da planilha em que estão os dados tecle 'Alt+F11' para acessar o editor de VBA
3. no menu do editor >> Inserir >> Módulo
4. cole o código na janela em branco que vai se abrir
5. feito! 'Alt+Q' para retornar para a planilha e testar

para rodar o código (mantenha a planilha "Plan1" como a planilha ativa):
6. tecle 'Alt+F8' >> selecione a macro correspondente >> Executar, ou insira um botão na planilha e vincule-o à macro ou vincule-a a um atalho de teclado (Alt+F8 > Opções).

Sub ReplicaDados()
Dim i As Long
For i = 2 To Sheets.Count
Cells(Rows.Count, 3).End(3)(2).Resize(, 8) = _
Application.Transpose(Sheets(i).[E11:E18])
Next i
End Sub

Osvaldo
Obrigado.
Só teve um probleminha
Se eu deixar a "Plan1" ativada não acontece nada
mas se eu ativar qualquer outra ai funciona, mas ela copia e cola nela mesma e quando muda de linha ela não cola na mesma coluna ex
linha um começa colar em "A1"
Linha dois começa a colar em"B2"

Me desculpe se eu não consegui me expressar direito, ate que eu não entendo nada.
Mas muito obrigado
osvaldomp
osvaldomp Geek Registrado
753 Mensagens 558 Curtidas
#7 Por osvaldomp
25/03/2017 - 23:14
Gabriel, o que causa o problema são as suas células mescladas na planilha "Plan1". No seu primeiro arquivo a linha 4 está preenchida e sem células mescladas. Teste o código naquele arquivo e veja o resultado. Já no seu segundo arquivo a linha 4 está vazia e você caiu na armadilha das células mescladas nas linhas 2 e 3, por isso o código não funciona corretamente. Selecione as células mescladas e desfaça a mesclagem, depois teste o código.

Sugestão - nunca mescle células, pois células mescladas podem provocar erros em macros e em fórmulas.
Osvaldo
gabrielmaia.gm
gabrielmaia.... Novo Membro Registrado
14 Mensagens 0 Curtidas
#8 Por gabrielmaia....
25/03/2017 - 23:32
osvaldomp disse:
Gabriel, o que causa o problema são as suas células mescladas na planilha "Plan1". No seu primeiro arquivo a linha 4 está preenchida e sem células mescladas. Teste o código naquele arquivo e veja o resultado. Já no seu segundo arquivo a linha 4 está vazia e você caiu na armadilha das células mescladas nas linhas 2 e 3, por isso o código não funciona corretamente. Selecione as células mescladas e desfaça a mesclagem, depois teste o código.

Sugestão - nunca mescle células, pois células mescladas podem provocar erros em macros e em fórmulas.

Osvaldo, não entendi nada mas fiz o que pediu

DEU CERTO
MUITO OBRIGADO

Ganhei minha noite
tava tentando aprender via youtube já tava desistindo
o mas longe que cheguei foi aqui

Sub teste()
For Each vplan In Sheets
If vplan.Name <> "Plan1" Then
Sheets(1.4).Select
Range("E11&quot.Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Plan1&quot.Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
ActiveCell.Offset(1, 0).Range("A1&quot.Select
End If

Next
End Sub


mas soh copia da "1.4" 3 vezes
e a "Plan1" tem que ser a ultima se nao da erro


Mais uma vez

OBRIGADÃO
osvaldomp
osvaldomp Geek Registrado
753 Mensagens 558 Curtidas
#9 Por osvaldomp
26/03/2017 - 09:40
gabrielmaia.gm disse:
...não entendi nada mas fiz o que pediu
DEU CERTO


O código busca a última linha preenchida na tabela e replica os dados na linha logo abaixo dela. No entanto, se a última linha da tabela estiver mesclada o código se atrapalha e não faz a operação corretamente. Célula mesclada é similar a político brasileiro: inútil, desnecessário e nos causa prejuízos!
Osvaldo
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal