0
respostas

[Dúvida] Código de VBA deixa o valor de data um pouco quebrado.

Olá, bom dia.

Gostaria de pedir uma ajuda quanto ao vídeo 2 aula 4 do curso VBA: fazendo um cadastro personalizado.

Quando insiro o valor data , mesmo que a coluna de data não esteja formatada no estilo norte-americano, ele é registrado nesse formato. Apenas quando uso número na parte dia maiores que 12 que ele funciona.

Segue uma imagem de quando tentei inserir o valor 01/12/2024.

Não sei onde me perdi. Insira aqui a descrição dessa imagem para ajudar na acessibilidadeCódigo:

' Para utilizar as teclas corretamente no código, precisamos nos referir aos códigos ASCII e aos códigos de tecla (KeyCode) disponíveis na tabela do Visual Basic. ' Esses códigos nos ajudam a identificar qual tecla foi pressionada e a realizar as ações apropriadas no nosso formulário.

Private Sub tbData_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

'Verifica as teclas de 1 a 9 no teclado alfanumérico
If KeyCode >= vbKey0 And KeyCode <= vbKey9 Then
    
    'Caso o comprimento da data seja 2 ou 5, adiciona as barras
    If Len(Trim(Me.ActiveControl)) = 2 Or Len(Trim(Me.ActiveControl)) = 5 Then
        Me.ActiveControl = Trim(Me.ActiveControl) & "/"
    End If

'Verifica as teclas de 1 a 9 no teclado numérico
ElseIf KeyCode >= vbKeyNumpad0 And KeyCode <= vbKeyNumpad9 Then
    
    'Caso o comprimento da data seja 2 ou 5, adiciona as barras
    If Len(Trim(Me.ActiveControl)) = 2 Or Len(Trim(Me.ActiveControl)) = 5 Then
        Me.ActiveControl = Trim(Me.ActiveControl) & "/"
    End If

'Deixa pronto o tratamento para a tecla "delete" e libera seu uso
ElseIf KeyCode = vbKeyDelete Then

'Deixa pronto o tratamento para a tecla "backspace" e libera seu uso
ElseIf KeyCode = vbKeyBack Then

'Caso não seja nenhum dos casos acima, cancela a digitação
Else
    KeyCode = vbKeyCancel
End If

End Sub