Página 1 de 1

Peenchimento de txtbox's com afterupdate sem retorno

Enviado: 28 Mai 2018 às 09:45
por AMORIM123
E ai galera!

No cód do evento txt_periodo_AfterUpdate do meu "frm_rbpa" tenho a instrução para que quando digitada uma data ou selecionada uma data cujo registro já conste na sheets("Comum") os txtbox's: "txt_rpa" e "txt_fspa" sejam carregados com os demais dados do mesmo resgitro, se não houver semelhança então "txt_rpa" e "txt_fspa" = sem preenchimento

quando seleciono ocorre tudo legal: img_calendario_Click()

Código: Selecionar todos
Private Sub img_calendario_Click()
    'abre o calendário
    txt_periodo.Value = GetCalendário
    'limpa os txtbox's
    txt_rpa = ""
    txt_fspa = ""
    'em seguida chama evento afterupdate para caso haja dados semelhantes os txtbox's
    'sejam carregados com os demais dados do registro
    Call txt_periodo_AfterUpdate
End Sub


Porém, quando seleciono o primeiro registro da sheets("Comum") (25/05/2018)ele roda legal, quanto seleciono o segundo registro (10/05/2018) ele não retorna o preenchimento dos "txt_rpa" e "txt_fspa" e se em seguida seleciono uma data para qual não há registros ai..acontece o que deveria: "txt_rpa" e "txt_fspa" = sem preenchimento
Código: Selecionar todos
Private Sub txt_periodo_AfterUpdate()

Dim lngPriLin, lngUltLin, lngLoopLin       As Long
Dim datperiodo                             As Date
Dim strbusca                               As String
    
    lngPriLin = 2
    
With Me
    On Error GoTo trataErro
    datperiodo = .txt_periodo.Text
End With
    
With wshComum
    
    lngUltLin = .Cells(.Rows.Count, 2).End(xlUp).Row
        
    For lngLoopLin = lngPriLin To lngUltLin Step 1
            strbusca = .Cells(lngLoopLin, 2)
            'busca pela data semelhante
            If strbusca = datperiodo Then
              MsgBox ("Para o período " & datperiodo & " já há dados cadastrados, caso queira realizar uma pesquisa, selecione botão OK do formulário; se desejar editar os dados prossiga com as alterações nos campos desejados e selecione SALVAR, em seguida OK para seguir editando."), vbExclamation, aviso
                'carrega os dados da busca nos txt's em formato moeda
                'Me.txt_rpa.SetFocus
                'Format((Me.txt_rpa), "R$ #,###.00") = CCur(.Cells(lngLoopLin, 3))
                'Format((Me.txt_fspa), "R$ #,###.00") = CCur(.Cells(lngLoopLin, 4))
                Me.txt_rpa = Format(CCur(.Cells(lngLoopLin, 3)), "R$ #,###.00")
                Me.txt_fspa = Format(CCur(.Cells(lngLoopLin, 4)), "R$ #,###.00")
                Exit Sub
            'se minha strbusca for diferente do "txt_periodo" então os txtbox's são carregados
            'sem preenchimento, pois a data digitada em "txt_periodo" não tem registro na
            'sheets("Comum")
            ElseIf strbusca <> datperiodo Then
                Me.txt_rpa = ""
                Me.txt_fspa = ""
                Exit Sub
            Exit For
            End If
            
    Next lngLoopLin
        
End With
    
trataErro:
If Err.Number = 13 Then
    Me.txt_periodo = ""
    Me.txt_rpa = ""
    Me.txt_fspa = ""
End If

End Sub
Muito obrigado pela atenção e conhecimento!

Peenchimento de txtbox's com afterupdate sem retorno

Enviado: 01 Jun 2018 às 08:05
por AMORIM123
é só colocar o else após o exit for..
Código: Selecionar todos
Else
                
                Me.txt_rpa = ""
                Me.txt_fspa = ""
            
            End If