Notifications
Clear all

Retornar últimos valores de cada linha com macro

7 Posts
2 Usuários
0 Reactions
1,010 Visualizações
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa tarde a todos!

Estou precisando de ajuda com uma macro que faça um Loop e coloque todos os últimos valores de cada linha em uma coluna única.
A tentativa que elaborei deu certo. Porém com ela tenho que duplicar a macro para cada linha. Vai ficar muito grande.
Segue anexo modelo.

De antemão, muito Obrigado.

Silvio Felinto

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

 
Postado : 26/02/2015 11:55 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Seria isso?

Sub preenchercol()

Application.ScreenUpdating = False
'O numero 2 signfica que começará a preencher a partir da segunda linha.
For i = 2 To 20
    Cells(i, 18).Value = Cells(i, 1).End(xlToRight).Value
Next

Application.ScreenUpdating = True
End Sub

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 26/02/2015 12:04 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Gtsalikis,

Testei aqui e só está colocando o valor da célula A2 e, ainda assim, na coluna 17 (coluna Q) e não 18, que é a coluna R. Por que será?

Silvio Felinto

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

 
Postado : 26/02/2015 12:45 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Desculpe.

Testei a primeira macro e foi a segunda que você acertou.

Testei a segunda e foram copiados os valores de A2 até A4. Não foi copiado o valor da célula A5. Por que será?

Silvio Felinto

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

 
Postado : 26/02/2015 12:55 pm
(@gtsalikis)
Posts: 2373
Noble Member
 

Verdade. Isso é porque a linha 5 só tem um valor na coluna A. Então, o comando de ir até a ultima coluna -> end(xltoright) vai levar À ultima coluna da planilha, que estará vazia.

Tente asim:

Sub preenchercol()

Application.ScreenUpdating = False
'O numero 2 signfica que começará a preencher a partir da segunda linha.
For i = 2 To 20
    If Cells(i, 1).End(xlToRight).Column > 18 Then
        Cells(i, 18).Value = Cells(i, 1).Value
    Else
        Cells(i, 18).Value = Cells(i, 1).End(xlToRight).Value
    End If
Next

Application.ScreenUpdating = True
End Sub

PS: uma alternativa, mais simples, seria partir da coluna Q, indo para a esquerda (em vez de sair da coluna A para a direita:

Sub preenchercol()

Application.ScreenUpdating = False
'O numero 2 signfica que começará a preencher a partir da segunda linha.
For i = 2 To 20
    Cells(i, 18).Value = Cells(i, 18).End(xlToLeft).Value
Next

Application.ScreenUpdating = True
End Sub

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 26/02/2015 1:08 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Gtsalikis,

Fiz uma alteração para retornar o último valor, mesmo sendo o único da da linha na coluna A e não é que deu certo?

Mesmo assim, quero expressar meu agradecimento pela sua ajuda.

Segue a macro com a alteração que fiz.

Sub retornarultimacol()

On Error GoTo 0

'O numero 2 signfica que começará a preencher a partir da segunda linha.
For i = 2 To 20

If Cells(i, 2).Value = "" Then

Cells(i, 18).Value = Cells(i, 1).Value

Else

Cells(i, 18).Value = Cells(i, 1).End(xlToRight).Value
End If
Next

End Sub

Um abraço.
Silvio Felinto

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

 
Postado : 26/02/2015 1:33 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Gtsalikis,

Mais uma vez muito obrigado.

Agora temos mais opções para entender como funcionam as macros.

Um abraço.

Silvio Felinto

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

 
Postado : 26/02/2015 1:39 pm