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