Ir para conteúdo
Fórum Script Brasil
  • 0

Userform de Pesquisa


Marcos R Paulus

Pergunta

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

Editado por Marcos R Paulus
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 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

 

Editado por Alyson Ronnan Martins
alteração de observações
Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...