Ir para conteúdo
Fórum Script Brasil
  • 0

Macro copiar linha a cima por criterio.


leandrohpty

Pergunta

Boa tarde pessoal, gostaria da ajuda do senhores.

Tenho uma planilha com as seguintes especificações:

Coluna A               Coluna B                              Coluna C               Coluna D
1                              FIAT                                     Palio                       2017
2                              FIAT                                     Palio                       2018

O que eu preciso é o seguinte, se na Coluna D, o ano for "2018"
A macro ira adicionar uma linha abaixo e Copiara os dados da linha de cima, porém agora colocando o ano de "2019".

Ficaria assim:

Coluna A               Coluna B                              Coluna C               Coluna D
1                              FIAT                                     Palio                       2017
2                              FIAT                                     Palio                       2018
3                              FIAT                                     Palio                       2019

Isso, em todos os anos que tiverem como 2018 apenas.

Consegui adicionar uma linha em branco sempre que encontrar o ano de "2018", porém não sei como copiar a valor da linha de cima e colar na nova criada alterando o ano...
O código que estou usando é o seguinte:

Sub Main()
Dim lRow As Long
Dim ws As Excel.Worksheet
Dim lLast As Long

Application.ScreenUpdating = False

Set ws = ActiveSheet
With ws
lLast = .Cells(.Rows.Count, "D").End(xlUp).Row
'Considernado uma linha de cabeçalho:
For lRow = lLast To 2 Step -1
If .Cells(lRow, "D") = "2018" Then
.Rows(lRow + 1).Insert
End If

Next lRow
End With

Application.ScreenUpdating = True

End Sub
Eliandro
Membro
Membro
 
Mensagens: 1
Registrado em: Ter Jun 05, 2018 12:03 pm
Has thanked: 0 time
Have thanks: 0 time
  •  
  •  
 
Editado por leandrohpty
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
2 horas atrás, Alyson Ronnan Martins disse:

Boa tarde Leandro.

Você usou o ".cells" para ver se estava escrito 2018 entãopode usar ele tambem para escrever na linha nova abaixo:


.cells(lRow + 1, "A").value = .cells(lRow, "A").value

*dentro do if abaixo do comando insert

Muito bom Alisson, sou novo em VBA e não conheço bem as sintaxes...
Obrigado!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...