Notifications
Clear all

Macro para copiar dados de um plano da planilha e colar em o

9 Posts
3 Usuários
0 Reactions
1,696 Visualizações
(@darlan-sst)
Posts: 15
Active Member
Topic starter
 

Estou criando uma planilha para lançar vendas e gastos de uma pequena empresa.
Preciso de um macro para copiar os dados das celulas "B5,B7,B9" e colar em outro plano porém em forma de linha.
Porém para colar no outro plano, o macro deve identificar a primeira linha vazia e colar, essa é a regra principal que não consegui fazer.

Segue o macro que comecei a fazer:

Sub GeraVenda()
Sheets("Lançamentos").Select ' Seleciona a Planilha Lançamentos
Range("B5,B7,B9").Select ' Posiciona nas células a serem copiadas
Selection.Copy ' copia
Sheets("Histórico").Select ' Seleciona a planilha de destino
Range("B5").Select ' posiciona na primeira célula
Selection.End(xlDown).Select ' posiciona na última usada
ActiveCell.Offset(1, 0).Range("B5").Select ' posiciona na primeira livre
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True ' cola e converte a coluna para linha
End Sub

 
Postado : 11/05/2016 8:27 am
(@mprudencio)
Posts: 2749
Famed Member
 

Troque essas duas linhas

Range("B5").Select ' posiciona na primeira célula
Selection.End(xlDown).Select ' posiciona na última usada

Por esta

Range("A1048576").end(xlup).select

O restante do codigo vc mantem

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 11/05/2016 9:24 am
(@darlan-sst)
Posts: 15
Active Member
Topic starter
 

Até foi executado sem erros, porém ele só faz na primeira e não procura por linha vazia.
gostaria também de no final ele acrescentar uma linha vazia no plano "Histórico".

 
Postado : 11/05/2016 10:24 am
(@darlan-sst)
Posts: 15
Active Member
Topic starter
 

Olha como o macro ficou:

Sub GeraVenda()
Range("B5,B7,B9").Select ' Posiciona nas células a serem copiadas
Selection.Copy ' copia
Sheets("Vendas").Select ' Seleciona a planilha de destino
Range("B1048576").End(xlUp).Select
ActiveCell.Offset(1, 0).Range("B5").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True ' cola e converte a coluna para linha
    Range("B5").Select
    Selection.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
    Sheets("Lançamentos").Select
    Range("B5").Select
    Selection.ClearContents
    Range("B7").Select
    Selection.ClearContents
    Range("B9").Select
    Selection.ClearContents
End Sub

Ele faz mais algumas coisas, porém ao executar o macro ele lança na última linha que foi preenchida e apaga os dados, colando os atuais.

 
Postado : 11/05/2016 11:00 am
(@mprudencio)
Posts: 2749
Famed Member
 

Disponibilize o arquivo com as explicações na propria planilha mostrando o resultado esperado.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 11/05/2016 2:36 pm
(@osvaldomp)
Posts: 858
Prominent Member
 

substitua esta linha

ActiveCell.Offset(1, 0).Range("B5").Select ' posiciona na primeira livre

por esta

ActiveCell.Offset(1, 0).Select ' posiciona na primeira livre  

Osvaldo

 
Postado : 11/05/2016 5:21 pm
(@osvaldomp)
Posts: 858
Prominent Member
 

Veja se este código abaixo faz o que você precisa ;)

Sub GeraVendaV2()
  Sheets("Lançamentos").Range("B5,B7,B9").Copy
  Sheets("Histórico").Cells(Rows.Count, 2).End(3)(2).PasteSpecial Transpose:=True
End Sub

Osvaldo

 
Postado : 11/05/2016 5:35 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Vc nao copiou o que escrevi escreveu diferente por isso o erro.

Veja que o Oswaldo escreveu a mesma coisa.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 11/05/2016 5:42 pm
(@osvaldomp)
Posts: 858
Prominent Member
 

Veja que o Oswaldo escreveu a mesma coisa.

Me parece que você se equivocou, pois o que eu sugeri não tem qualquer semelhança com o que você sugeriu ... ;)

Osvaldo

 
Postado : 12/05/2016 8:21 am