Jump to content
Fórum Script Brasil
  • 0

Userform de Pesquisa


Question

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

 

pesquisa.jpg

Edited by Marcos R Paulus
Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Eu tentei usar o "Find" e consegui encontrar algumas informações olha se esse código te ajuda

 

Public Function MarcosRPaulus(TextoPesquisado As String) As String
Dim res As Range 'Resultado

Set res = Sheets("BASE-DUBL.INTERNA").Range("B:AI").Find(TextoPesquisado, LookIn:=xlValues)
If Not res Is Nothing Then
    MarcosRPaulus = Sheets("BASE-DUBL.INTERNA").Cells(res.Row, 11).Value 'Linha encontrada na coluna 11
Else
    Set res = Sheets("BASE-DUBL.EXTERNA").Range("B:AI").Find(TextoPesquisado, LookIn:=xlValues)
    If Not res Is Nothing Then
        MarcosRPaulus = Sheets("BASE-DUBL.EXTERNA").Cells(res.Row, 11).Value 'Linha encontrada na coluna 11
    Else
        MarcosRPaulus = ""
    End If
End If

End Function

A vantagem de usar "Function" que ele já te retorna a informação exemplo:

 

Private Sub txt_dubl1_Change()

dubl1 = txt_dubl1 'Informação procurada

txt_datadubl1 = MarcosRPaulus(txt_dubl1) 'Função de pesquisa
'Ainda é possível dizer qual coluna você quer que traga a coluna


End Sub

Public Function MarcosRPaulus(TextoPesquisado As String) As String
Dim res As Range 'Resultado

Set res = Sheets("BASE-DUBL.INTERNA").Range("B:AI").Find(TextoPesquisado, LookIn:=xlValues)
If Not res Is Nothing Then
    MarcosRPaulus = Sheets("BASE-DUBL.INTERNA").Cells(res.Row, 11).Value 'Linha encontrada na coluna 11
Else
    Set res = Sheets("BASE-DUBL.EXTERNA").Range("B:AI").Find(TextoPesquisado, LookIn:=xlValues)
    If Not res Is Nothing Then
        MarcosRPaulus = Sheets("BASE-DUBL.EXTERNA").Cells(res.Row, 11).Value 'Linha encontrada na coluna 11
    Else
        MarcosRPaulus = ""
    End If
End If

End Function

 

Edited by Alyson Ronnan Martins
alteração de observações
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      148900
    • Total Posts
      644981
×
×
  • Create New...