Estou enfrentando esse problema ao clicar na Listbox p/ retornar um dado ano extraído de uma data.
Meu código é esse:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim ctr As Controle
Set ctr = Controle
Linha = ListBox1.ListIndex
ctr.TECod = ListBox1.List(Linha, 0)
ctr.txt_data = ListBox1.List(Linha, 1)
ctr.txt_mes = Format(ListBox1.List(Linha, 2), "mmmm")
ctr.txt_ano = Format(ListBox1.List(Linha, 3), "yyyy")
Exit sub
End Sub
'formato data automático:
Private Sub txt_data_Change()
If Len(txt_data) = 2 Then
txt_data = txt_data + "/"
txt_data.SelStart = 4
End If
If Len(txt_data) = 5 Then
txt_data = txt_data + "/"
txt_data.SelStart = 7
End If
End Sub
'ao dar tab no userform, insere automático "mês" e "ano", nas textbox
Private Sub txt_data_Exit(ByVal Cancel As MSForms.ReturnBoolean)
On Error Resume Next
Dim mes, ano As String
'Dim dataInserida As Date
'DateInserida = CDate(txt_data.Value)
If IsDate(txt_data.Value) Then
mes = VBA.Format(txt_data.Text, "mmmm")
txt_mes.Text = mes
ano = VBA.Format(txt_data.Text, "yyyy")
txt_ano.Text = ano
Else
MsgBox "Por favor, insira uma data válida.", vbExclamation
txt_data.Value = ""
txt_mes.Value = ""
txt_ano.Value = ""
End If
End Sub
No form de cadastro, fica do jeito certo. Apenas quanto filtro e clico pelo listbox, é que o retorno sai com o ano errado (conforme print).
Pergunta
AlexCont
Boa tarde!
Estou enfrentando esse problema ao clicar na Listbox p/ retornar um dado ano extraído de uma data.
Meu código é esse:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) Dim ctr As Controle Set ctr = Controle Linha = ListBox1.ListIndex ctr.TECod = ListBox1.List(Linha, 0) ctr.txt_data = ListBox1.List(Linha, 1) ctr.txt_mes = Format(ListBox1.List(Linha, 2), "mmmm") ctr.txt_ano = Format(ListBox1.List(Linha, 3), "yyyy") Exit sub End Sub
'formato data automático: Private Sub txt_data_Change() If Len(txt_data) = 2 Then txt_data = txt_data + "/" txt_data.SelStart = 4 End If If Len(txt_data) = 5 Then txt_data = txt_data + "/" txt_data.SelStart = 7 End If End Sub 'ao dar tab no userform, insere automático "mês" e "ano", nas textbox Private Sub txt_data_Exit(ByVal Cancel As MSForms.ReturnBoolean) On Error Resume Next Dim mes, ano As String 'Dim dataInserida As Date 'DateInserida = CDate(txt_data.Value) If IsDate(txt_data.Value) Then mes = VBA.Format(txt_data.Text, "mmmm") txt_mes.Text = mes ano = VBA.Format(txt_data.Text, "yyyy") txt_ano.Text = ano Else MsgBox "Por favor, insira uma data válida.", vbExclamation txt_data.Value = "" txt_mes.Value = "" txt_ano.Value = "" End If End Sub
No form de cadastro, fica do jeito certo. Apenas quanto filtro e clico pelo listbox, é que o retorno sai com o ano errado (conforme print).
Agradeço pela ajuda.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.