Busca de Informaçõe...
 
Notifications
Clear all

Busca de Informações no Banco

3 Posts
2 Usuários
0 Reactions
1,156 Visualizações
(@chook)
Posts: 197
Reputable Member
Topic starter
 

Bom dia amigos,
estou com uma bronquinha aqui que já ralei e não consegui uma solução. Atualmente trabalhamos com 6 estoques, são eles (19, 27, 35, 43, 86, 4006) o exemplo abaixo demonstra uma busca no banco mas tem uma falha. Ele pesquisa no banco de dados apenas o primeiro item encontrada e preciso que ele verifique se é do estoque selecionado.

Abaixo um trecho do banco para melhor analise. Observe que tenho que localizar a informação em A:A e a loja em B:B para poder apresentar o saldo em E:E

A B C D E
331198 19 19 331198 4
331198 27 27 331198 17
331198 35 35 331198 0
331198 43 43 331198 12
331198 86 86 331198 0

    
    buscacodigo1 = codigointerno.Caption
    With Worksheets("Estoque").Range("A:A")
        Set localizar = .Find(buscacodigo1, LookIn:=xlValues, LookAt:=xlWhole)
            If localizar Is Nothing Then
                qtd19.ForeColor = &HFF&
                qtd19.Caption = "000"
            Else
                qtd19.ForeColor = &H80000001
                qtd19.Caption = Format(localizar.Offset(0, 4).Value, "000")
                qtdpend19.Caption = Format(localizar.Offset(0, 16).Value, "000")
            End If
    End With
    
 
Postado : 11/07/2013 8:04 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Chook, se a falha é somente o fato de estar localizando a primeira ocorrência, você tem de ajustar a rotina e urilizar o Método FindNext.

De uma olhada no tópico abaixo onde o Reinaldo postou um código que irá lhe ajudar, é só fazer os ajustes.
viewtopic.php?f=10&t=7888

Pesquise tambem por, xlWhole, FindNext e encontrara varios outros tópicos sobre o assunto, e lembre-se de ver na ajuda do VBA sobre os Metodos e Propriedade e variáveis do Metodo FIND.

[]s

 
Postado : 11/07/2013 8:50 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Não sei se entendi, teste:

Sub BuscaAvançada()
  Application.EnableEvents = False
    ' Verifica se o valor alterado foi na célula
        
        Dim lastRow As Long
        Dim lastResultRow As Long
        Dim X As Long
        
        ' Verifica qual a ultima célula preenchida
        lastRow = Plan1.Cells(Rows.Count, 1).End(xlUp).Row
        
        ' Apaga valores anteriores
        Plan2.Range("A2:E100").ClearContents
        
        lastResultRow = 2 'linha resultado
        
        ' Ciclo em todas as linhas
        For X = 2 To lastRow '1 Linha dados pequisa
        
           ' verifica se o valor é igual ao da pesquisa
           If Plan1.Cells(X, 1).Value = Plan1.Range("H1").Value And Plan1.Cells(X, 2) = Plan1.Range("J1").Value And Plan1.Cells(X, 5) > 0 Then  '1,2 e 5 coluna pequisa
           
                ' Copia os valores
                Plan2.Cells(lastResultRow, 1).Value = Plan1.Cells(X, 1).Value '
                Plan2.Cells(lastResultRow, 2).Value = Plan1.Cells(X, 2).Value '
                Plan2.Cells(lastResultRow, 3).Value = Plan1.Cells(X, 3).Value '
                Plan2.Cells(lastResultRow, 4).Value = Plan1.Cells(X, 4).Value '
                Plan2.Cells(lastResultRow, 5).Value = Plan1.Cells(X, 5).Value '
            
                lastResultRow = lastResultRow + 1
           End If
        Next
        
    
    Application.EnableEvents = True
Plan2.Columns("A:E").AutoFit
End Sub
 
Postado : 11/07/2013 10:43 am