Notifications
Clear all

VLOOKUP

7 Posts
2 Usuários
0 Reactions
1,680 Visualizações
(@araujors)
Posts: 79
Estimable Member
Topic starter
 

Bom dia,
Como faço para utilizar o Vlookup com duplicados de um resultado, conforme exemplo abaixo eu tenho dois itens iguais, mas preciso que o Vlookup se baseie sempre pela ultima informação da sequencia tipo (2) e assim aletoriamente (3)
Obrigado.

LOTE SKU DESCRIÇÃO PROCESSAMENTO DT MODIFIC USUÁRIO SEQ
P11111111 CELULAR LG CELULAR LG [01] PRODUÇÃO 05/12/2016 TESTE 1
P11111111 CELULAR LG CELULAR LG [02] FABRICA 06/12/2016 TESTE 2
P22222222 CELULAR IPHONE CELULAR IPHONE [01] PRODUÇÃO 07/12/2016 TESTE 1
P22222222 CELULAR IPHONE CELULAR IPHONE [02] FABRICA 07/12/2016 TESTE 2

 
Postado : 08/12/2016 6:29 am
(@wzxnet7)
Posts: 0
New Member
 

Bom dia.
Eu ponderaria a hipótese de um laço FOR NEXT buscando de baixo para cima ( com step -1)

 
Postado : 08/12/2016 8:48 am
(@araujors)
Posts: 79
Estimable Member
Topic starter
 

wzxnet7 como eu faria para esse setup-1?

 
Postado : 08/12/2016 9:35 am
(@wzxnet7)
Posts: 0
New Member
 

Veja se lhe ajuda

 
Postado : 08/12/2016 10:18 am
(@araujors)
Posts: 79
Estimable Member
Topic starter
 

wzxnet7 funcionou perfeitamente mas eu preciso que retorne só o ultimo mesmo, e eu não posso usar m exit sub porque eu uso mais outras funções junto

If cmdPesquisarAutomatico.Value = Empty Then Exit Sub
    
        If cmdInjetora.Value = True Then
            
            auxLote = Me.cmdPesquisarAutomatico.Value
            auxProcessamento = "[01] INJETORA"
                            
            'Pesquisando ultimo registro
            t = Sheets("MovLote").Cells(Cells.Rows.Count, 1).End(xlUp).Row ' determina a ultima linha com dados com base na coluna "A"
                
                'aqui vai o loop invertido
                
                For i = t To 2 Step -1 ' veja que aqui o loop   começa na ultima linha (t) e vai em direção da primeira linha (linha 3) da coluna "A"
                ' isso acontece por causa do menos 1 na frente do step
                If Sheets("MovLote").Cells(i, 1) = auxLote Then
                'note que o primeiro valor encontrado para a maria foi o 5 e não o 4
                auxProc = Sheets("MovLote").Cells(i, 4) - ESSE CARA AQUI TINHA Q TRAZER SOMENTE A ULTIMA INFORMAÇÃO E PARAR, MAS NÃO PODE TER EXIT SUB
                
                End If
                
                Next
                
                auxProces = auxProc
                
                If auxProcessamento = auxProc And Date = auxData Then
                    MsgBox "Lote " & Me.cmdPesquisarAutomatico.Value & " já obteve movimentação nesse dia para o setor " & "[01] INJETORA", , "Mensagem"
                Exit Sub
                
                Else
                
                    C.Offset(0, 5).Value = "[01] INJETORA"
                    C.Offset(0, 8).Value = Date
                    C.Offset(0, 9).Value = "0"
                    Set ssheet = ThisWorkbook.Sheets("MovLote")
                    nr = ssheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
                
                    ssheet.Cells(nr, 1) = Me.cmdPesquisarAutomatico
                    ssheet.Cells(nr, 2) = auxSKU
                    ssheet.Cells(nr, 3) = auxDesc
                    ssheet.Cells(nr, 4) = "[01] INJETORA"
                    ssheet.Cells(nr, 5) = Format(Date, "dd/mm/yyyy")
                    ssheet.Cells(nr, 6) = UCase(LogonName)
                
                End If
 
Postado : 08/12/2016 6:44 pm
(@wzxnet7)
Posts: 0
New Member
 

Bom dia araujors.
Não precisa sair da rotina, apenas saia do LAÇO FOR depois da condição procurada ter sido satisfeita.
Veja o anexo.

 
Postado : 09/12/2016 2:40 am
(@araujors)
Posts: 79
Estimable Member
Topic starter
 

Obrigadu!!!

 
Postado : 13/12/2016 8:05 pm