Copiar informações ...
 
Notifications
Clear all

Copiar informações da linha acima e colar na linha abaixo.

6 Posts
3 Usuários
0 Reactions
1,492 Visualizações
(@eduaraujo)
Posts: 5
Active Member
Topic starter
 

Pessoal bom dia!

Tenho uma planilha na qual preciso de uma macro que que copie informações da linha acima de determinadas colunas e cole na linha imediatamente abaixo nas colunas especificadas.

A instrução seria: Copiar célula da linha acima coluna "A", na célula abaixo da coluna "A"; da linha acima coluna "D" na célula abaixo da coluna "C", da linha acima coluna "H" na célula abaixo coluna H.

Seria possível alguém me ajudar com um código que possibilite a operação?

Obrigado!

 
Postado : 13/10/2015 7:38 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!!

Em nossa base tem vários post com assunto próximo disso.
http://cse.google.com.br/cse?cx=partner ... gsc.page=1

Use o camando desloc

.offset(1,0).pastespecial

ou Destination....
Exemplo...

Range("A3").Copy Destination:=Cells(ActiveCell.Row + 1, 1)

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 13/10/2015 7:43 am
(@eduaraujo)
Posts: 5
Active Member
Topic starter
 

Pessoal, obrigado pela ajuda. Meu problema está parcialmente resolvido com a função abaixo, porém preciso que também aconteça o procedimento para as colunas "D" e "H". Alguém pode me ajudar?

Sub tst()
Dim iLastRow As Long
Dim ws As Worksheet

Set ws = ActiveSheet 'Planilha que será validada pelo botão
iLastRow = ws.Cells(Cells.Rows.Count, 1).End(xlUp).Row 'Pega o nº da última célula preenchida na coluna 1 (A)
Range("A" & iLastRow + 1).Value = Range("A11:A600" & iLastRow).Value

End Sub

Preciso que estas duas tarefas também sejam realizadas na mesma macro:
iLastRow = ws.Cells(Cells.Rows.Count, 4).End(xlUp).Row 'Pega o nº da última célula preenchida na coluna 4 (D)
Range("C" & iLastRow + 1).Value = Range("D11:D600" & iLastRow).Value

iLastRow = ws.Cells(Cells.Rows.Count, 8).End(xlUp).Row 'Pega o nº da última célula preenchida na coluna 8(H)
Range("H" & iLastRow + 1).Value = Range("H11:H600" & iLastRow).Value

 
Postado : 14/10/2015 7:20 am
(@setti)
Posts: 150
Estimable Member
 
LASTROW = Plan1.Cells(Cells.Rows.Count, 4).End(xlUp).Row 'Pega o nº da última célula preenchida na coluna 4 (D)
Cells(LASTROW + 1, 3).Value = Cells(LASTROW, 4).Value

ILASTROW = Plan1.Cells(Cells.Rows.Count, 8).End(xlUp).Row 'Pega o nº da última célula preenchida na coluna 8(H)
Cells(ILASTROW + 1, 8).Value = Cells(ILASTROW, 8).Value
 
Postado : 14/10/2015 7:59 am
(@setti)
Posts: 150
Estimable Member
 

Para fazer com várias linhas é assim:

sub teste
Range("a1").Select
Total = (Cells(Rows.Count, 3).End(xlUp).Row) - 1
For I = 1 To Total
Cells(I + 1, 3).Value = Cells(I, 4).Value
Next I
Total = (Cells(Rows.Count, 8).End(xlUp).Row) - 1

For I = 1 To Total

Cells(I + 1, 8).Value = Cells(I, 8).Value
Next  I
end sub
 
Postado : 14/10/2015 8:09 am
(@eduaraujo)
Posts: 5
Active Member
Topic starter
 

Pessoal, minha Macro está funcionando porém agora tenho outro problema. Minha função deve começar apenas a partir da linha 11, visto que a linha 10 é cabeçalho, logo a função está trazendo o cabeçalho caso ainda não haja nenhum registro. Alguém poderia ajudar?

Coluna A B C D E .... H
Linha 11 Ex: Data Matrícula do Empregado Hora Início Hora Término Tempo de Execução Profissional

A ideia da macro é a seguinte: a partir do primeiro lançamento de data e hora de início e término e profissional que realizou o serviço, a macro possa repetir a última data informada, a hora de início da próxima linha como sendo igual a hora de término da linha anterior e o último profissional que está realizando os serviços....

Como a linha 11 é cabeçalho, quando na há marcações a macro está repetindo o cabeçalho. Deveria permanecer em branco ou inserir a data atual e o horário das 7:00 da manhã como hora de início, deixando o campo profissional em branco.

 
Postado : 15/10/2015 11:39 am