Notifications
Clear all

Retornar pesquisa com detalhes

3 Posts
2 Usuários
0 Reactions
724 Visualizações
selmo
(@selmo)
Posts: 236
Estimable Member
Topic starter
 

Olá, boa tarde galera!!
Sou iniciante em VBA, a partir de exemplos que retirei aqui do Forum, estou construindo uma planilha com varias macros, uma delas seria uma caixa ImputBox com campo para pesquisa, quando eu faço um busca, ele me retorna o que digitei e tambem o endereço da celula. Gostaria de alterar o codigo para que ele me retornasse os valores contidos nas colunas A, B, D, E e F, referente ao conteudo que eu encontrei na coluna C.

Public sCel
Public sLocaliza As Boolean

Sub Pesquisar()
    
    'Valor a pesquisar
    RefId = InputBox(Prompt:="Referência", _
          Title:="Pesquisar Rreferencia", Default:="Digite Aqui")
   
    If RefId = "Digite Aqui" Or RefId = vbNullString Then
        MsgBox "Operação Cancelada ou Valor Inválido"
        Exit Sub

    Else
        'Chama a Function
        ProcuraRefId (RefId)
    End If
    
    If sLocaliza = True Then
        MsgBox "Referencia :- " & RefId & " Localizada em :- " & sCel
    Else
        MsgBox "Referencia não Localizada"
    End If
    
End Sub

Public Function ProcuraRefId(ByVal RefId As String) As String
    Dim iLin As Long
    Dim sCol As Long
    
    sLocaliza = False

    Dim wsDados As Worksheet
    Set wsDados = Worksheets("Dados")
    
    iLin = 2 'Linha 2
    sCol = 3  'Coluna 1
    
    With wsDados
    
        Do While Not IsEmpty(.Cells(iLin, sCol))

            If .Cells(iLin, sCol).Value = RefId Then
             
                sLocaliza = True 'Verdadeiro se encontrado
                sCel = .Cells(iLin, sCol).Address(False, False)
                
                Exit Do 'Sai do Loop se encontrar
            
            End If
            
            'Incrementa a linha
            iLin = iLin + 1
            
        Loop
        
    End With

End Function

"A mente que se abre a uma nova ideia jamais voltará ao seu tamanho original."
Albert Einstein

 
Postado : 18/09/2013 9:15 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

selmo, nas rotinas abaixo o retorno é feito em um MsgBox, então se entendi corretamente, altere o seguinte nas rotinas :

Na Sub Pesquisar()
Troque esta linha :
MsgBox "Referencia :- " & RefId & " Localizada em :- " & sCel
Por esta :
MsgBox sCel

e na Function ProcuraRefId :
Troque esta linha :
' sCel = .Cells(iLin, sCol).Address(False, False)
Por esta :
sCel = "A = " & .Cells(iLin, 1).Value & Chr(13) & _
"B = " & .Cells(iLin, 2).Value & Chr(13) & _
"D = " & .Cells(iLin, 4).Value & Chr(13) & _
"E = " & .Cells(iLin, 5).Value & Chr(13) & _
"F = " & .Cells(iLin, 6).Value

Será dado o retorno no msgbox com os dados das Colunas : A, B, D, E, F referente ao valor enconmtrado na Coluna "C".

Veja se é isto e qq duvida retorne.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 18/09/2013 10:49 am
selmo
(@selmo)
Posts: 236
Estimable Member
Topic starter
 

Era exatamente isso que eu precisava, ajudou e muito Mauro, muito obrigado mesmo :D

"A mente que se abre a uma nova ideia jamais voltará ao seu tamanho original."
Albert Einstein

 
Postado : 18/09/2013 2:46 pm