Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
  • Avatar do usuário
Avatar do usuário
Por gmsinfo
Posts Avatar
#53378
Boa noite pessoal.

Faço algumas macros básicas para automatizar o meu trabalho mas estou com dúvida em como fazer isso.

Eu tenho 2 Sheets, o que eu preciso fazer é bater se um código existente na sheet 1 também existe na sheet 2, caso exista o mesmo vai ser desconsiderado, caso não exista eu preciso copiar esse código junto com o restante da linha para a sheet 2.

Alguém poderia me dar uma luz de como resolver?
#53385
Boa tarde.

Penso que este código resolva o problema é só adaptar ao seu caso.

Caso necessite ajuda é só avisar. (Se quiser envie o arquivo que eu adapto)
Código: Selecionar todos
Sub pesquisa()
    Dim ultimaPlan1, ultimaPlan2, i As Long
    Dim codigo As Variant

    'seleciona planilha 1
    Sheets("Plan1").Select
    'Verifica ultima linha a ser utilizada na planilha 1
    ultimaPlan1 = Range("a1000000").End(xlUp).Row
    
    'Ciclo for para correr todos os valores da planilha 1
    For i = 1 To ultimaPlan1
        'seleciona plan 1
        Sheets("Plan1").Select
        
        'Define a variavel a pesquisar
        codigo = Cells(i, 1).Value

        'seleciona plan 2
        Sheets("Plan2").Select
        
        'Procura pela variável
        Set Rng = Cells.Find(What:=codigo, _
                             After:=ActiveCell, _
                             LookIn:=xlFormulas, _
                             LookAt:=xlPart, _
                             SearchOrder:=xlByRows, _
                             SearchDirection:=xlNext, _
                             MatchCase:=False)
                             
        'se encontrar não faz nada
        If Not Rng Is Nothing Then
        
        Else    'Caso encontre copia a linha da Planilha 1 e cola na ultima linha da Planilha 2
        
            'Seleciona Planilha 2
            Sheets("Plan2").Select
            'Verifica ultima linha a ser utilizada
            ultimaPlan2 = Range("a1000000").End(xlUp).Row
            
            'seleciona Planilha 1
            Sheets("Plan1").Select
            
            'Copia da Planilha 1 e cola na Planilha 2
            Worksheets("Plan1").Range((Cells(i, 1)), Cells(i, 3)).Copy Destination:=Worksheets("Plan2").Range("A" & ultimaPlan2 + 1)
            
        End If
        
    
    Next i
End Sub
#53412
AfonsoMira escreveu:Boa tarde.

Penso que este código resolva o problema é só adaptar ao seu caso.

Caso necessite ajuda é só avisar. (Se quiser envie o arquivo que eu adapto)
Código: Selecionar todos
Sub pesquisa()
    Dim ultimaPlan1, ultimaPlan2, i As Long
    Dim codigo As Variant

    'seleciona planilha 1
    Sheets("Plan1").Select
    'Verifica ultima linha a ser utilizada na planilha 1
    ultimaPlan1 = Range("a1000000").End(xlUp).Row
    
    'Ciclo for para correr todos os valores da planilha 1
    For i = 1 To ultimaPlan1
        'seleciona plan 1
        Sheets("Plan1").Select
        
        'Define a variavel a pesquisar
        codigo = Cells(i, 1).Value

        'seleciona plan 2
        Sheets("Plan2").Select
        
        'Procura pela variável
        Set Rng = Cells.Find(What:=codigo, _
                             After:=ActiveCell, _
                             LookIn:=xlFormulas, _
                             LookAt:=xlPart, _
                             SearchOrder:=xlByRows, _
                             SearchDirection:=xlNext, _
                             MatchCase:=False)
                             
        'se encontrar não faz nada
        If Not Rng Is Nothing Then
        
        Else    'Caso encontre copia a linha da Planilha 1 e cola na ultima linha da Planilha 2
        
            'Seleciona Planilha 2
            Sheets("Plan2").Select
            'Verifica ultima linha a ser utilizada
            ultimaPlan2 = Range("a1000000").End(xlUp).Row
            
            'seleciona Planilha 1
            Sheets("Plan1").Select
            
            'Copia da Planilha 1 e cola na Planilha 2
            Worksheets("Plan1").Range((Cells(i, 1)), Cells(i, 3)).Copy Destination:=Worksheets("Plan2").Range("A" & ultimaPlan2 + 1)
            
        End If
        
    
    Next i
End Sub
Vlw ajudou muito, obrigado por comentar o código assim eu consigo adaptar, está tudo praticamente certo falta só falta eu adaptar para ele não colar na última linha da tabela e sim na primeira linha em branco disponivel.

vlw.
Avatar do usuário
Por AfonsoMira
Posts Avatar
#53420
Ainda bem que consegui ajudar. :D
Caso necessite de mais alguma ajuda só avisar.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord