-
Total de itens
3 -
Registro em
-
Última visita
Posts postados por MosconiDih
-
-
Pessoal estou fazendo uma aplicação em vba usando excel como bando de dados. E na minha tela de inicial gostaria que um label q eu criei exibisse a hora e escrevesse uma saudação. Criei um código mas ele infelizmente fica estático exibindo apenas a hora em que a aplicação foi aberta. Alguém me da uma mão pra ele ficar dinâmico e atualizar a label a cada segundo com a hora nova? Segue o código abaixo.
Private Sub UserForm_Activate()
Dim vSaudacaoHora As Integer
vSaudacaoHora = Hour(Now) + TimeValue("00:00:01")
Select Case vSaudacaoHora
Case 1 To 5
labelsaudacao.Caption = "Olá, agora são " & Time & " horas, tenha uma boa madrugada!" ' retorno no Label
Case 6 To 11
labelsaudacao.Caption = "Olá, agora são " & Time & " horas, tenha um bom dia!"
Case 12 To 17
labelsaudacao.Caption = "Olá, agora são " & Time & " horas, tenha uma boa tarde!"
Case 18 To 24
labelsaudacao.Caption = "Olá, agora " & Time & " horas, tenha uma boa noite!"
End SelectEnd Sub
-
Ola... tenho pouco conhecimento mas acredito q te resolveria o problema usando um modulo no evento do keydown
cria o modulo "sub keyReturn" e coloca a função que você quer que ele execute
==== UserFormX ===================================================================
Private Sub txtOrdemVenda_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyReturn Then
keyReturn 'chama sua sub na txtOrdemVenda
End if
End Sub
======== UserFormY ===================================================================
Private Sub c_lstPedidos_DblClick(ByVal Cancel As MSForms.ReturnBoolean)keyReturn 'chama a mesma sub no evento de click duplo na c_listPedidos
End sub
Bom espero q ajude. Sou bem iniciante no VBA mas acho que resolveria pra você dessa forma.
Textbox com hora 24 e não AM PM
em VBA
Postado
Pessoal tenho uma dúvida.
Estou criando uma agenda e gostaria que minhas duas textbox que recebe a hora digitada pelo usuário se autoformate durante a imputação de dados.
Ex: quando o usuário digitar do 3 até o 9 ele acrescente antes o 0 e se for o 1 ou 2 não e depois do 2 caractere ele acrescente os : para separar hora do minuto. Caso o minuto for maior q 5 ele jogue automático o zero também.
Alguém me da uma luz ae? Tentei usar case no evento _KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) mas infelizmente não deu certo. Tentei com o evento change mas não deu certo. Como sou leito no VBA tenho certeza q é meu código q está errado. Alguém sabe como resolver isso?
Segue o código (incompleto) q não funcionou adequadamente:
Private Sub txtInicio_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 51 To 57 ' BackSpace(8)) e numericos (51 até 57) do 3 até o 9
If Len(txtInicio) = 1 Then
txtInicio.Text = "0" & txtInicio.Text
End If
End Select
If Len(txtInicio) = 2 Then
txtInicio = txtInicio & ":"
End If
Select Case KeyAscii
Case 48 To 50 ' BackSpace 0, 1 e 2
If Len(txtInicio) = 1 Then
txtInicio.Text = txtInicio.Text
End If
End Select
If Len(txtInicio) = 2 Then
txtInicio = txtInicio + ":"
End If
End Sub