Créer un masque de saisie dans un formulaire utilisateur (UserForm), Excel VBA

Créer un masque de saisie dans un formulaire utilisateur (UserForm), Excel VBA

Voici un guide détaillé pour créer un masque de saisie dans un formulaire utilisateur (UserForm) avec VBA Excel.
Étape 1 : Insérer un UserForm
1. Ouvrez votre fichier Excel.
2. Appuyez sur Alt + F11 pour ouvrir l’éditeur Visual Basic for Applications (VBA).
3. Dans l’éditeur VBA, cliquez sur Insertion dans le menu et choisissez UserForm. Cela va créer un nouveau UserForm où vous pourrez ajouter des contrôles.
Étape 2 : Concevoir le UserForm
1. Dans le UserForm créé, vous pouvez ajouter des contrôles comme des TextBox (zones de texte), CommandButton (boutons), Label (étiquettes), etc.
2. Pour ajouter un masque de saisie, vous aurez besoin d’un contrôle TextBox où l’utilisateur pourra entrer ses données (par exemple, un numéro de téléphone ou une date).
3. Vous pouvez aussi ajouter un CommandButton pour soumettre ou traiter les données saisies dans le UserForm.
Par exemple, pour un masque de saisie de numéro de téléphone, vous pourriez concevoir votre UserForm de cette manière :

  • Ajouter une Label avec le texte « Entrez le numéro de téléphone : ».
  • Ajouter un TextBox où l’utilisateur saisira le numéro de téléphone.
  • Ajouter un CommandButton avec le texte « Soumettre » pour traiter la saisie.

Étape 3 : Ajouter du Code au UserForm
Pour créer un masque de saisie, vous allez utiliser l’événement Change ou KeyPress du TextBox afin de restreindre la saisie et de la formater correctement. Voici un exemple de masque de saisie pour un numéro de téléphone, avec le format (XXX) XXX-XXXX.
Code pour le Masque de Saisie d’un Numéro de Téléphone
Dans l’éditeur VBA :
1. Faites un clic droit sur le TextBox dans lequel vous souhaitez appliquer le masque de saisie.
2. Choisissez Afficher le code et entrez le code suivant :

Private Sub TextBox1_Change()
    Dim Text As String
    Text = TextBox1.Text
    ' Supprimer les caractères non numériques
    Text = Replace(Text, "(", "")
    Text = Replace(Text, ")", "")
    Text = Replace(Text, "-", "")
    Text = Replace(Text, " ", "")
    ' Ajouter le masque de saisie : (XXX) XXX-XXXX
    If Len(Text) <= 3 Then
        TextBox1.Text = "(" & Text
    ElseIf Len(Text) <= 6 Then
        TextBox1.Text = "(" & Mid(Text, 1, 3) & ") " & Mid(Text, 4, Len(Text))
    Else
        TextBox1.Text = "(" & Mid(Text, 1, 3) & ") " & Mid(Text, 4, 3) & "-" & Mid(Text, 7, 4)
    End If
    ' Assurer que le curseur reste à la position correcte
    TextBox1.SelStart = Len(TextBox1.Text)
End Sub

Explication du Code :

  • L’événement TextBox1_Change est déclenché chaque fois que l’utilisateur tape quelque chose dans la TextBox1.
  • Nous supprimons les caractères non numériques (c’est-à-dire (, ), -, et les espaces) à l’aide de la fonction Replace.
  • Ensuite, nous formaterons le texte à mesure que l’utilisateur tape, en ajoutant les parenthèses et le tiret aux bons endroits.
  • Enfin, la propriété SelStart permet de maintenir le curseur à la fin du champ de texte à chaque modification.

Étape 4 : Tester le UserForm
1. Fermez la fenêtre de code et revenez au UserForm.
2. Pour tester le formulaire, appuyez sur F5 dans l’éditeur VBA pour exécuter le formulaire.
3. Essayez de saisir un numéro dans la TextBox. Le texte sera automatiquement formaté selon le masque (XXX) XXX-XXXX.
Exemple de Résultat :
Lorsque vous testez le formulaire, à mesure que l’utilisateur tape un numéro de téléphone, la TextBox s’ajustera automatiquement pour afficher le format ainsi :

  • Si l’utilisateur tape 1234567890, il apparaîtra comme (123) 456-7890.
  • Si l’utilisateur tape 1, il apparaîtra comme (1.
  • Au fur et à mesure que l’utilisateur ajoute des chiffres, le format continuera à être appliqué correctement.

Améliorations supplémentaires :

  • Vous pouvez modifier le masque de saisie pour d’autres types de données, comme des numéros de carte bancaire, des numéros de sécurité sociale, ou des dates, en ajustant la logique de formatage dans l’événement TextBox1_Change.
  • Vous pouvez également ajouter une validation pour vous assurer que l’utilisateur entre un nombre valide de chiffres (par exemple, 10 chiffres pour un numéro de téléphone).
Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x