Format pour saisir la date

Bonsoir
Une textbox, dans un formulaire, est destinée à recueillir la date saisie au clavier dans ce style : "27/12/2020".
Pour limiter la saisie, je souhaiterais que les barres de fraction soient déjà présentes et que l'on puisse vérifier que ce qui a été saisi correspond bien à une date
(avec IsDate, ça devrait le faire) .
Comment créer ce format "(../../....") destiné à recevoir les chiffres ?

Merci

...merci... j'y trouverai sans aucun doute la réponse que je cherche...j'ai fait des recherches mais mon critère de recherche etait vraisemblablement mal exprimé. Bonne soirée

Bonjour,

Il ne fallait regarder que le bout concernant la date dans un textbox ....

Si le textbox concerné se nomme : "Textbox1" > Fais un test ...

Option Explicit
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
CtrL_KeyDown TextBox1, KeyCode
End Sub

Private Sub CtrL_KeyDown(ByVal TxtB As MSForms.TextBox, ByVal KeyCode As MSForms.ReturnInteger)
    Dim X&, Xl&, D$, M$, A, T$, mask, C2, D2: mask = "__/__/____"
    'pour ceux qui n'ont pas le pavé numerique conversion du keycode du pavé haut du clavier
    If KeyCode >= 48 And KeyCode <= 57 Then KeyCode = KeyCode + 48
    'c'est parti on démarre le controle!!
    With TxtB
        Xl = .SelLength: If Xl = 0 Then Xl = 1    'Xl= la longeur de texte selectionné
        .Value = IIf(.Value = "", mask, .Value): If KeyCode = 8 And Xl > 1 Then KeyCode = 46
        T = .Value: .SelStart = IIf(T = mask, 0, .SelStart): X = .SelStart:
        Select Case KeyCode
        Case 96 To 105  'pavé numerique haut et bas (Attention!!!pas besoins de bloquer la touche MAJ!!!!!!!!le code se charge de convertir)
            If X = 10 Then KeyCode = 0: Exit Sub
            If X = 2 Or X = 5 Then X = X + 1
            Mid(T, X + 1, Xl) = Chr(KeyCode - 48) & Mid(mask, X + 2, Xl - 1)
            X = X + 1: Xl = 0: If X = 2 Or X = 5 Then X = X + 1
            'le plus gros tu traitement se passe avec controle de validité de date en fait!!!
            If Val(T) > 12 Or Val(Mid(T, 1, 1)) > 1 Then X = 0: Xl = 2: Mid(T, 1, 2) = Mid(mask, 1, 2): Beep
            If Val(Mid(T, 4, 2)) > 31 Or Val(Mid(T, 4, 1)) > 3 Then Mid(T, 4.2) = Mid(mask, 4, 2): X = 3: Xl = 2: Beep
            D = Mid(T, 4, 2): M = Mid(T, 1, 2): A = Mid(T, 7, 4)
            If IsDate(D & "/" & M) And Not IsDate(D & "/" & M & "/2000") Then Mid(T, 4, 2) = Mid(mask, 4, 2): X = 3: Xl = 2: Beep: KeyCode = 0
            If X = 10 And Not IsDate(T) Then Mid(T, 7, 10) = Mid(mask, 7, 10): X = 6: Xl = 4: Beep

        Case 8:
            If X = 0 Then KeyCode = 0:: .Value = "": Exit Sub Else Mid(T, X, 1) = Mid(mask, X, 1): X = X - 1: Xl = 0
            If T = mask Then T = ""
        Case 46:
            If X = 10 Then Exit Sub Else Mid(T, X + 1, Xl) = Mid(mask, X + 1, Xl): X = X: Xl = 0: If X = 2 Or X = 5 Then X = X + 1
            If T = mask Then T = ""
        Case Else: KeyCode = 0    ' a pour effet d'inhiber toutes les autre touches
        End Select
        .Value = T 'restitution
        .SelStart = X: .SelLength = Xl: KeyCode = 0
    End With
End Sub

ric

Rechercher des sujets similaires à "format saisir date"