estou tentando criar um userform de pesquisa, não tenho muito conhecimento de VBA, mas está funcionando razoável, tendo apenas um problema para resolver:
no print anexado, ao se digitar o numero do 'talão', vai buscar o numero do 'dublado'. esse numero do 'dublado' deve pesquisar em 2 planilhas diferentes, para fornecer o restante das informações. eu consigo fazer funcionar apenas para buscar em uma OU em outra das planilhas, mas não as duas ao mesmo tempo (uma APÓS a outra).
não consigo achar um código VBA (para o userform) de exemplo para me basear, só encontro exemplos de procv e vlookup direto na planilha de excel.
o código pode estar um pouquinho bagunçado, mas está funcionando conforme descrito acima.
agradeço a ajuda!
Private Sub txt_dubl1_Change()
Dim intervalo2 As Range
Dim dubl1 As String
Dim datadubl1 As Date
Dim proddubl1 As Integer
Dim espdubl1 As Integer
Dim filmedubl1 As Integer
Dim dispdubl1 As Integer
Dim obsdubl1 As Integer
Dim tec1dubl1 As Integer
Dim tec2dubl1 As Integer
Dim tec3dubl1 As Integer
dubl1 = txt_dubl1
Sheets("BASE-DUBL.INTERNA").Select
Set intervalo2 = Range("b2:ai20005")
Sheets("BASE-DUBL.EXTERNA").Select
Set intervalo3 = Range("b2:ad20005")
pesquisa5 = Application.WorksheetFunction.VLookup(dubl1, intervalo2, 10, False)
'If IsError(pesquisa5) Then
'pesquisa5 = Application.WorksheetFunction.VLookup(dubl1, intervalo3, 10, False)
'End If
'pesquisa6 = Application.WorksheetFunction.VLookup(dubl1, intervalo2, 15, False)
'If IsError(pesquisa5) Then
'pesquisa6 = Application.WorksheetFunction.VLookup(dubl1, intervalo3, 15, False)
'End If
'pesquisa7 = Application.WorksheetFunction.VLookup(dubl1, intervalo2, 17, False)
'If IsError(pesquisa5) Then
'pesquisa7 = Application.WorksheetFunction.VLookup(dubl1, intervalo3, 17, False)
'End If
'pesquisa8 = Application.WorksheetFunction.VLookup(dubl1, intervalo2, 11, False)
'If IsError(pesquisa5) Then
'pesquisa8 = Application.WorksheetFunction.VLookup(dubl1, intervalo3, 11, False)
'End If
'pesquisa9 = Application.WorksheetFunction.VLookup(dubl1, intervalo2, 19, False)
'If IsError(pesquisa5) Then
'pesquisa9 = Application.WorksheetFunction.VLookup(dubl1, intervalo3, 19, False)
'End If
'pesquisa10 = Application.WorksheetFunction.VLookup(dubl1, intervalo2, 20, False)
'If IsError(pesquisa5) Then
'pesquisa10 = Application.WorksheetFunction.VLookup(dubl1, intervalo3, 20, False)
'End If
'pesquisa11 = Application.WorksheetFunction.VLookup(dubl1, intervalo2, 3, False)
'If IsError(pesquisa5) Then
'pesquisa11 = Application.WorksheetFunction.VLookup(dubl1, intervalo3, 3, False)
'End If
'pesquisa12 = Application.WorksheetFunction.VLookup(dubl1, intervalo2, 4, False)
'If IsError(pesquisa5) Then
'pesquisa12 = Application.WorksheetFunction.VLookup(dubl1, intervalo3, 4, False)
'End If
'pesquisa13 = Application.WorksheetFunction.VLookup(dubl1, intervalo2, 5, False)
'If IsError(pesquisa5) Then
'pesquisa13 = Application.WorksheetFunction.VLookup(dubl1, intervalo3, 5, False)
'End If
txt_datadubl1 = pesquisa5
txt_proddubl1 = pesquisa6
txt_espdubl1 = pesquisa7
txt_filmedubl1 = pesquisa8
txt_dispdubl1 = pesquisa9
txt_obsdubl1 = pesquisa10
txt_tec1dubl1 = pesquisa11
txt_tec2dubl1 = pesquisa12
txt_tec3dubl1 = pesquisa13
Exit Sub
End Sub
Pergunta
Marcos R Paulus
ola,
estou tentando criar um userform de pesquisa, não tenho muito conhecimento de VBA, mas está funcionando razoável, tendo apenas um problema para resolver:
no print anexado, ao se digitar o numero do 'talão', vai buscar o numero do 'dublado'. esse numero do 'dublado' deve pesquisar em 2 planilhas diferentes, para fornecer o restante das informações. eu consigo fazer funcionar apenas para buscar em uma OU em outra das planilhas, mas não as duas ao mesmo tempo (uma APÓS a outra).
não consigo achar um código VBA (para o userform) de exemplo para me basear, só encontro exemplos de procv e vlookup direto na planilha de excel.
o código pode estar um pouquinho bagunçado, mas está funcionando conforme descrito acima.
agradeço a ajuda!
Private Sub txt_dubl1_Change() Dim intervalo2 As Range Dim dubl1 As String Dim datadubl1 As Date Dim proddubl1 As Integer Dim espdubl1 As Integer Dim filmedubl1 As Integer Dim dispdubl1 As Integer Dim obsdubl1 As Integer Dim tec1dubl1 As Integer Dim tec2dubl1 As Integer Dim tec3dubl1 As Integer dubl1 = txt_dubl1 Sheets("BASE-DUBL.INTERNA").Select Set intervalo2 = Range("b2:ai20005") Sheets("BASE-DUBL.EXTERNA").Select Set intervalo3 = Range("b2:ad20005") pesquisa5 = Application.WorksheetFunction.VLookup(dubl1, intervalo2, 10, False) 'If IsError(pesquisa5) Then 'pesquisa5 = Application.WorksheetFunction.VLookup(dubl1, intervalo3, 10, False) 'End If 'pesquisa6 = Application.WorksheetFunction.VLookup(dubl1, intervalo2, 15, False) 'If IsError(pesquisa5) Then 'pesquisa6 = Application.WorksheetFunction.VLookup(dubl1, intervalo3, 15, False) 'End If 'pesquisa7 = Application.WorksheetFunction.VLookup(dubl1, intervalo2, 17, False) 'If IsError(pesquisa5) Then 'pesquisa7 = Application.WorksheetFunction.VLookup(dubl1, intervalo3, 17, False) 'End If 'pesquisa8 = Application.WorksheetFunction.VLookup(dubl1, intervalo2, 11, False) 'If IsError(pesquisa5) Then 'pesquisa8 = Application.WorksheetFunction.VLookup(dubl1, intervalo3, 11, False) 'End If 'pesquisa9 = Application.WorksheetFunction.VLookup(dubl1, intervalo2, 19, False) 'If IsError(pesquisa5) Then 'pesquisa9 = Application.WorksheetFunction.VLookup(dubl1, intervalo3, 19, False) 'End If 'pesquisa10 = Application.WorksheetFunction.VLookup(dubl1, intervalo2, 20, False) 'If IsError(pesquisa5) Then 'pesquisa10 = Application.WorksheetFunction.VLookup(dubl1, intervalo3, 20, False) 'End If 'pesquisa11 = Application.WorksheetFunction.VLookup(dubl1, intervalo2, 3, False) 'If IsError(pesquisa5) Then 'pesquisa11 = Application.WorksheetFunction.VLookup(dubl1, intervalo3, 3, False) 'End If 'pesquisa12 = Application.WorksheetFunction.VLookup(dubl1, intervalo2, 4, False) 'If IsError(pesquisa5) Then 'pesquisa12 = Application.WorksheetFunction.VLookup(dubl1, intervalo3, 4, False) 'End If 'pesquisa13 = Application.WorksheetFunction.VLookup(dubl1, intervalo2, 5, False) 'If IsError(pesquisa5) Then 'pesquisa13 = Application.WorksheetFunction.VLookup(dubl1, intervalo3, 5, False) 'End If txt_datadubl1 = pesquisa5 txt_proddubl1 = pesquisa6 txt_espdubl1 = pesquisa7 txt_filmedubl1 = pesquisa8 txt_dispdubl1 = pesquisa9 txt_obsdubl1 = pesquisa10 txt_tec1dubl1 = pesquisa11 txt_tec2dubl1 = pesquisa12 txt_tec3dubl1 = pesquisa13 Exit Sub End Sub
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
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.