Créer un formulaire de saisie de données avec validation, Excel VBA

Créer un formulaire de saisie de données avec validation, Excel VBA

Voici un exemple détaillé de la création d’un formulaire de saisie de données avec validation dans Excel à l’aide de VBA. Ce code vous guidera à travers les étapes pour créer un formulaire simple où l’utilisateur pourra entrer des données. Nous allons ajouter des validations sur les champs pour assurer que les données saisies sont correctes. 

1. Étapes pour créer le formulaire : 

1. Accéder à l’éditeur VBA
Ouvrez Excel, puis appuyez sur Alt + F11 pour accéder à l’éditeur VBA. 

2. Créer un formulaire (UserForm)
Dans l’éditeur VBA, allez dans le menu Insertion, puis cliquez sur UserForm pour ajouter un nouveau formulaire. 

3. Ajouter des contrôles au formulaire
Vous pouvez ajouter plusieurs contrôles (TextBox, ComboBox, Label, CommandButton) en utilisant la boîte à outils. 

Pour cet exemple, nous utiliserons : 

  • 3 TextBox : pour saisir le nom, l’âge et la ville. 
  • 1 ComboBox : pour sélectionner le sexe (Homme, Femme). 
  • 2 CommandButton : un bouton pour enregistrer les données et un autre pour annuler. 

5. Ajouter du code VBA
Après avoir créé le formulaire, voici le code que vous pouvez utiliser pour la validation et l’enregistrement des données. 

2. Code VBA détaillé pour le formulaire de saisie avec validation 

Code pour le formulaire (UserForm)

Voici un code pour le formulaire, avec des champs de saisie et une validation. 

Private Sub UserForm_Initialize() 
    ' Remplir le ComboBox avec des valeurs par défaut 
    ComboBoxSexe.AddItem "Homme" 
    ComboBoxSexe.AddItem "Femme" 
End Sub 
Private Sub CommandButtonValider_Click() 
    ' Validation des champs 
    If TextBoxNom.Value = "" Then 
        MsgBox "Le nom est requis!", vbExclamation, "Erreur" 
        TextBoxNom.SetFocus 
        Exit Sub 
    End If 
    If TextBoxAge.Value = "" Or Not IsNumeric(TextBoxAge.Value) Then 
        MsgBox "Veuillez entrer un âge valide!", vbExclamation, "Erreur" 
        TextBoxAge.SetFocus 
        Exit Sub 
    End If 
    If ComboBoxSexe.Value = "" Then 
        MsgBox "Veuillez sélectionner un sexe!", vbExclamation, "Erreur" 
        ComboBoxSexe.SetFocus 
        Exit Sub 
    End If 
    If TextBoxVille.Value = "" Then 
        MsgBox "La ville est requise!", vbExclamation, "Erreur" 
        TextBoxVille.SetFocus 
        Exit Sub 
    End If 
    ' Enregistrer les données dans la feuille Excel 
    Dim LastRow As Long 
    LastRow = Sheets("Feuille1").Cells(Sheets("Feuille1").Rows.Count, 1).End(xlUp).Row + 1 
    Sheets("Feuille1").Cells(LastRow, 1).Value = TextBoxNom.Value 
    Sheets("Feuille1").Cells(LastRow, 2).Value = TextBoxAge.Value 
    Sheets("Feuille1").Cells(LastRow, 3).Value = ComboBoxSexe.Value 
    Sheets("Feuille1").Cells(LastRow, 4).Value = TextBoxVille.Value 
    MsgBox "Données enregistrées avec succès!", vbInformation, "Succès" 
    ' Réinitialiser les champs 
    TextBoxNom.Value = "" 
    TextBoxAge.Value = "" 
    ComboBoxSexe.Value = "" 
    TextBoxVille.Value = "" 
End Sub 
Private Sub CommandButtonAnnuler_Click() 
    ' Fermer le formulaire sans enregistrer 
    Unload Me 
End Sub

Explication du code

1. UserForm_Initialize
Cette procédure s’exécute lorsque le formulaire est initialisé. Elle remplit le ComboBoxSexe avec deux options (« Homme » et « Femme »). 

2. CommandButtonValider_Click
C’est la la procédure qui se déclenche lorsque l’utilisateur clique sur le bouton « Valider ». 

  • Elle commence par vérifier si tous les champs obligatoires sont remplis. Si un champ est vide ou invalide, un message d’erreur s’affiche et l’utilisateur est invité à corriger. 
  • Ensuite, les données sont enregistrées dans la feuille Excel. Les informations sont insérées à la première ligne vide de la feuille Feuille1. 
  • Après l’enregistrement, un message de confirmation s’affiche, et les champs du formulaire sont réinitialisés pour une nouvelle saisie. 

3. CommandButtonAnnuler_Click
Cette procédure ferme le formulaire sans enregistrer les données lorsque l’utilisateur clique sur le bouton « Annuler ». 

3. Exemple de structure de la feuille Excel

Avant de tester le formulaire, assurez-vous que la feuille Feuille1 contient les colonnes suivantes : 

  • Colonne A : Nom 
  • Colonne B : Âge 
  • Colonne C : Sexe 
  • Colonne D : Ville 

4. Lancer le formulaire

Pour afficher le formulaire à partir d’une feuille Excel, vous pouvez ajouter un bouton de commande dans la feuille et lier ce bouton à la procédure suivante dans un module : 

Sub OuvrirFormulaire() 
    UserForm1.Show 
End Sub

Ensuite, assignez cette macro au bouton dans votre feuille Excel. 

5. Résumé des points importants

  • Validation des données : Le formulaire vérifie si tous les champs sont remplis correctement avant d’enregistrer les données. 
  • Réinitialisation : Après chaque enregistrement, le formulaire est réinitialisé pour permettre une nouvelle saisie. 
  • Interaction avec la feuille Excel : Les données saisies sont envoyées à la feuille Excel, commençant à la première ligne vide. 

Avec ce code, vous avez un formulaire fonctionnel pour saisir des données avec une validation préalable. Vous pouvez ajouter des fonctionnalités supplémentaires selon vos besoins, comme des contrôles sur les âges, des listes déroulantes, etc. 

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x