Créer des assistants de saisie de données personnalisés, Excel VBA

Créer des assistants de saisie de données personnalisés, Excel VBA

Créer des assistants de saisie de données personnalisés dans Excel avec VBA (Visual Basic for Applications) permet de faciliter l’entrée de données et d’améliorer l’interaction avec l’utilisateur. Un assistant de saisie est souvent un formulaire personnalisé (UserForm) dans lequel l’utilisateur peut entrer des données, et ces données sont ensuite envoyées à des cellules spécifiques dans la feuille de calcul. 

Voici un exemple de code détaillé pour créer un assistant de saisie de données dans Excel avec VBA, accompagné d’explications sur chaque étape du processus. 

Objectif 

L’objectif est de créer un formulaire qui permet à un utilisateur d’entrer des informations telles que le nom, l’âge et la ville, et de les enregistrer dans une feuille de calcul. 

Étapes 

  1. Création d’un UserForm : Le UserForm est un formulaire graphique dans lequel l’utilisateur peut entrer des données. Nous allons créer un formulaire avec des champs de saisie pour le nom, l’âge et la ville. 
  2. Ajout de contrôles à UserForm : Le formulaire contiendra des contrôles comme des zones de texte pour saisir les données et un bouton pour valider la saisie. 
  3. Création du code VBA pour la gestion des données : Le code VBA collectera les données saisies et les enregistrera dans une feuille Excel. 

Code VBA détaillé 

1. Créer le UserForm 

  • Ouvrez Excel, puis appuyez sur Alt + F11 pour ouvrir l’éditeur VBA. 
  • Dans l’éditeur, faites un clic droit sur VBAProject (VotreClasseur) dans le volet de gauche et choisissez Insert -> UserForm. 
  • Dans le UserForm, ajoutez les contrôles suivants : 
  • Trois zones de texte : TextBoxNom, TextBoxAge, TextBoxVille 
  • Trois étiquettes : LabelNom, LabelAge, LabelVille 
  • Un bouton : CommandButtonValider 

2. Ajouter le code VBA pour UserForm

' Code dans le module du UserForm 
Private Sub CommandButtonValider_Click() 
    ' Vérifie si les champs sont remplis 
    If TextBoxNom.Value = "" Or TextBoxAge.Value = "" Or TextBoxVille.Value = "" Then 
        MsgBox "Veuillez remplir tous les champs.", vbExclamation, "Erreur" 
        Exit Sub 
    End If 
    ' Vérifie si l'âge est un nombre valide 
    If Not IsNumeric(TextBoxAge.Value) Then 
        MsgBox "L'âge doit être un nombre.", vbExclamation, "Erreur" 
        Exit Sub 
    End If 
    ' Enregistre les données dans la feuille de calcul 
    Dim ws As Worksheet 
    Set ws = ThisWorkbook.Sheets("Données") ' Assurez-vous d'avoir une feuille nommée "Données" 
    ' Trouve la première ligne vide 
    Dim ligne As Long 
    ligne = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row + 1 
    ' Enregistre les données dans la feuille 
    ws.Cells(ligne, 1).Value = TextBoxNom.Value 
    ws.Cells(ligne, 2).Value = TextBoxAge.Value 
    ws.Cells(ligne, 3).Value = TextBoxVille.Value 
    ' Affiche un message de confirmation 
    MsgBox "Les données ont été enregistrées.", vbInformation, "Succès" 
    ' Efface les champs de saisie 
    TextBoxNom.Value = "" 
    TextBoxAge.Value = "" 
    TextBoxVille.Value = ""  
    ' Ferme le UserForm 
    Unload Me 
End Sub

Explication du code 

1. CommandButtonValider_Click : Cette fonction est exécutée lorsque l’utilisateur clique sur le bouton de validation (CommandButtonValider). Elle effectue plusieurs vérifications : 

  • Vérifie si tous les champs sont remplis. Si l’un des champs est vide, un message d’erreur apparaît. 
  • Vérifie si l’âge est un nombre. Si ce n’est pas le cas, un message d’erreur apparaît. 
  • Si tout est correct, les données sont enregistrées dans une feuille Excel. 
  • Les champs de saisie sont ensuite réinitialisés pour permettre une nouvelle entrée. 
  • Le formulaire se ferme après la saisie. 

2. Enregistrement des données dans la feuille de calcul

  • Le code enregistre les données dans la première ligne vide de la feuille nommée « Données ». 
  • Les données sont enregistrées dans les colonnes 1 (Nom), 2 (Âge), et 3 (Ville). 

3. Réinitialisation et fermeture du formulaire : Après l’enregistrement des données, les champs sont effacés et le formulaire se ferme automatiquement. 

4. Création d’un bouton pour ouvrir le formulaire 

Maintenant, il vous faut un bouton sur une feuille Excel pour ouvrir le formulaire. Voici le code pour un bouton sur une feuille de calcul qui lance le formulaire : 

' Code dans un module standard 
Sub OuvrirFormulaire() 
    UserForm1.Show 
End Sub

Explications supplémentaires 

1. UserForm1.Show : Cette ligne ouvre le formulaire que nous avons créé dans l’éditeur VBA. Pour que cela fonctionne, assurez-vous que le nom du UserForm est bien UserForm1. Si vous avez nommé le formulaire autrement, ajustez le code en conséquence. 

2. Ajout d’un bouton sur une feuille Excel

  • Allez dans Excel et insérez un bouton via Développeur -> Insérer -> Bouton. 
  • Associez le bouton à la macro OuvrirFormulaire. 

3. Feuille de données

  • Assurez-vous qu’il y ait une feuille nommée « Données » dans le classeur. Cette feuille sera utilisée pour stocker les informations saisies par l’utilisateur. 

Conclusion 

Ce code crée un assistant de saisie de données simple, permettant à l’utilisateur d’entrer des informations dans un formulaire et de les enregistrer dans une feuille Excel. Vous pouvez personnaliser davantage ce code en ajoutant des contrôles supplémentaires (comme des cases à cocher, des menus déroulants, etc.) et en adaptant la structure du formulaire pour répondre à vos besoins spécifiques. 

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