Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

EMSO.EXE

Pesquisa por código ou descrição

Recommended Posts

Olá jovens!

 

Seguinte estou desenvolvendo uma planilha em que o usuário lança em uma célula a descrição do produto (por exemplo: refrigerante) e ao clicar em um botão a sub-rotina pesquisa em uma guia (planilha) e retorna em outra guia todas as ocorrências com a palavra digitada e mais outras informações (por exemplo: preço, qtde em estoque, data de entrada, etc)

 

O código abaixo retorna com base na pesquisa por descrição do produto na coluna A, este está funcionando.

 

Quero usar o mesmo código em outro botão para fazer uma pesquisa com base no código da mercadoria que fica na coluna B, porém retorna todos os dados exceto a descrição da mercadoria na coluna A

 

Agradeço a ajuda

 

Private Sub btn_consulta_desc_Click()

Call LimpaPesquisa

Dim coluna(31) As String
Dim y, i, k As Integer
y = 7

Sheets("consulta").Select
Range("B4").Select
pesquisa = ActiveCell.FormulaR1C1

    If pesquisa = "" Then Exit Sub
    Set plan = Sheets("dados")
    Set x = plan.Columns("A:A").Find(what:=pesquisa) 

    If Not x Is Nothing Then
      celula = x.Address
      Do
        plan.Select
        x.Select
        Selection.Copy
        For i = 1 To 31
            coluna(i) = x.Columns(i)
        Next i
        Sheets("consulta").Select
        Range("A" & y).Value = coluna(1)
        Range("B" & y).Value = coluna(2)
        Range("C" & y).Value = coluna(3)
        Range("D" & y).Value = coluna(4)
        Range("E" & y).Value = coluna(5)
        Range("F" & y).Value = coluna(7)
        Range("G" & y).Value = coluna(12)
        Range("H" & y).Value = coluna(14)
        Range("I" & y).Value = coluna(15)
        Range("J" & y).Value = coluna(16)
        Range("K" & y).Value = coluna(17)
        Range("L" & y).Value = coluna(18)
        Range("M" & y).Value = coluna(19)
        Range("N" & y).Value = coluna(21)
        Range("O" & y).Value = coluna(22)
        Range("P" & y).Value = coluna(23)
        Range("Q" & y).Value = coluna(24)
        Range("R" & y).Value = coluna(25)
        Range("S" & y).Value = coluna(26)
        Range("T" & y).Value = coluna(30)
        Range("U" & y).Value = coluna(31)
        
        Call FormatarLinha(y)
        
        y = y + 1
        
        Set x = plan.Columns("A:A").FindNext(x)
      Loop While Not x Is Nothing And x.Address <> celula
    Else
      MsgBox "Produto " & pesquisa & " não encontrado na planilha " & plan.Name
    End If

End Sub

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acredito que não tenha outra solução pra isso, você quer fazer uma coisa completamente diferente da primeira, para isso você vai precisar criar uma função diferente da que você já tem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.