'Exemple 1
'
'ATTENTION !!!!!! CET EXEMPLE  NE CONTROLE PAS LA VALIDITE DE LA DATE SAISIE!!!!
'ici c'est juste pour montrer l'assistance a la saisie lineaire(à la suite)
'ATTENTION AUSSI!!! il n'y a pas de controle de << Sur-saisie >>
'on utilise l'event keydown pour pouvoir maitriser les autres touches dans le meme events
'!!!il nous faut donc convertir le << KEYCODE EN KEYASCII >> que normalement donne << l'event keypress >>!!!
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    Dim V$, K&
    With TextBox1
        V = .Value    'on prend la valeur actuelle du textbox
        'et selon le keycode de la touche
        Select Case KeyCode
            '(pour les pcs portables sans pavé numerique)on peut utiliser les chiffres du haut du clavier ou le pavé numerique
        Case 96 To 105, 48 To 57    'les touches du pavé et du haut du clavier
            K = KeyCode    'on mémorise le keycode dans la variable k
            KeyCode = 0    'et on annule aussitôt la touche
            If K >= 96 Then K = K - 48:    'on ramène le code asc pour les touche du pavé
            'control slachs (before  avant )
            If Len(V) = 2 Or Len(V) = 5 Then V = V & "/"    'Contrôle avant ajout du chiffre
            V = V & Chr(K)    'on peut maintenant ajouter le caractère tapé
            'control slachs (after après )
            If Len(V) = 2 Or Len(V) = 5 Then V = V & "/"    'Contrôle  après ajout du chiffre
            ' si vous vous demandez pourquoi je fait ces deux controls  avant et apres ajout du chiffre
            ' j'aurais tres bien pu me contenter de faire le 1er controle << avant  >>
            ' c'est purrement de l'ergonomie visuelle et gerer l'erreur du len(2) ou len(5)en resaisie apres etre revenu en arriere
            ' quand je tape  si j'ai 2 ou 5 caracteres il met le slash avant de mettre le chiffre tapé
            ' visuellement c'est pas tres confortable
            ' imaginez si je ne met  que le control After
            ' et que si je tape << 01/02 >> j'aurais donc pareil << 01/02/ >>
            ' et que je revient en arriere par ce que je veut changer le mois
            ' et que je n'efface que le slachs par erreur et que je tape mon nouveau chiffre  << 3 >> par exemple
            ' et bien  comme on est en len(4) le controls ne voit pas l'erreur et je me retrouve avec << 01/023 >>
            ' j'ai donc le confort visuel de voir les slach des que je tape 2 ou 5 aractere
            ' et je n'ai pas la l'abscence du callback du slach  en re saisie
        Case 8:
            ' la touche (retour en arriere)
            ' ca c'est marrant
            ' on met le case de cette touche MAIS!!! on y fait rien
            ' mais  ça sert a rien alors ??!!???
            ' et si ça sert
            ' si je ne met pas ce case 8 la touche va passer dans le case else et donc etre annulée
        Case Else: KeyCode = 0    'toutes les autres touches sont automatiquement annulées
        End Select
        ' et on fini par mettre la variable v dans le .Value du textbox
        ' en la bloquant  à 10 caractères Max
        .Value = Mid(V, 1, 10)
        ' terminé le  controle de saisie avec separateur est opérant
    End With
End Sub