Notifications
Clear all

Estrutura "For" não retornando dados após Like do "Do Until"

1 Posts
1 Usuários
0 Reactions
1,452 Visualizações
(@amorim123)
Posts: 0
New Member
Topic starter
 

Olá, galera boa tarde.

Estou com probleminha que não estou conseguindo ler nas entrelinhas do meu código..rsrsr. Seguinte, No código a baixo tenho a instrução do meu "btn_pesquisar" do UserForm1, basicamente ele limpa minha "wshFiltro" para receber o filtro feito nos dados da "wshBanco", isso é feito por meio de "Do Until" para escolher (Like) entre o que esta na planilha com o que está nos txtbox em seguida ele remete tudo que for encontrado para a "wshFiltro" através do "For", porém, meu problema está nesta última parte, na instrução do loop ele compara os lavores nos txtbox's com o que está na planilha e escolhe "Like", porém não entra na instrução "For" para passar para wshFiltro, não entendo o por quê?!

Já revisei e revisei e revisei e não estou conseguindo obter exito em identificar, até mesmo é código que tenho prática em utiliza-lo em outros projetos funciona lega, porém neste projeto não roda...já comparei e nada.

Private Sub btn_pesquisar_Click()
    
Dim linhaBanco      As Integer
Dim linhaFiltro     As Integer
Dim lngUltLin       As Long
Dim vrtPerInf       As Variant
Dim vrtPerSup       As Variant
Dim IntCol          As Integer



Application.ScreenUpdating = False


On Error GoTo erro
linhaBanco = 2
linhaFiltro = 15


With wshFiltro

    wshFiltro.Activate
    
    lngUltLin = .Cells(.Rows.Count, 1).End(xlUp).Row
    
    If lngUltLin + 1 >= linhaFiltro Then .Range(.Cells(linhaFiltro, 1), .Cells(lngUltLin + 1, 32)).ClearContents

End With



vrtPerInf = CDate(IIf(txt_comp1.Value = "", 0, txt_comp1.Value))
vrtPerSup = CDate(IIf(txt_comp2.Value = "", 1000000, txt_comp2.Value))




With wshBanco

    wshBanco.Activate
    
    Do Until .Cells(linhaBanco, 1).Value2 = ""
        
        If UCase(.Cells(linhaBanco, 3).Value2) Like "*" & UCase(txt_remetente.Value) & "*" And _
        UCase(.Cells(linhaBanco, 2).Value2) Like "*" & UCase(txt_nota.Value) & "*" And _
        UCase(.Cells(linhaBanco, 24).Value2) Like "*" & UCase(txt_num_selo.Value) & "*" And _
        UCase(.Cells(linhaBanco, 28).Value2) Like "*" & UCase(cb_deferimento.Value) & "*" And _
        UCase(.Cells(linhaBanco, 25).Value2) Like "*" & UCase(txt_processo.Value) & "*" And _
        UCase(.Cells(linhaBanco, 30).Value2) Like "*" & UCase(cb_tipo_processo.Value) & "*" And _
        UCase(.Cells(linhaBanco, 31).Value2) Like "*" & UCase(cb_status.Value) & "*" And _
        .Cells(linhaBanco, 5).Value2 >= vrtPerInf And _
        .Cells(linhaBanco, 5).Value2 <= vrtPerSup Then
        
            For IntCol = 1 To 32
                wshFiltro.Cells(linhaFiltro, IntCol) = .Cells(linhaBanco, IntCol)
            Next IntCol
                
                linhaFiltro = linhaFiltro + 1
        End If
                linhaBanco = linhaBanco + 1
                
    Loop
    
    wshFiltro.Activate
    
End With

Call carregarlistbox


Application.ScreenUpdating = True

'É BOA PRÁTICA NOS PROCEDIMENTOS DE TRATAMENTO DE ERROS, POR COMO LINHA DE DESTINO O FINAL DA INSTRUÇÃO DO PROCEDIMENTO
'E ANTES DESSA LINHA POR "EXIT SUB", POIS CASO SEJA APRESENTADO ERRO AO EXECUTAR O CÓD ELE NÃO EXECUTA A LINHA DE
'TRATAMENTO DE ERRO
Exit Sub
erro:
Application.ScreenUpdating = True

End Sub

Segue link! https://1drv.ms/u/s!Aj-bsGYbi-JEgSRn7C-IIXjJsOud

Caso tenha algum problema para acessar a planilha, pois o form oculta a interface do excel, basta dar um duploclick no canto inferior esquerdo do "MULTI-PAGE"

Quem puder me ajudar....serei muito grato.

Muito obrigado pelo tempo e conhecimento dispendido!

 
Postado : 25/10/2018 3:17 pm