< Macros-commandes VBA < Exercices
![](../../../I/Oxygen480-apps-preferences-desktop-icons.svg.png.webp)
![](../../../I/Nuvola_apps_khelpcenter_green.png.webp)
![](../../../I/Oxygen480-apps-preferences-desktop-icons.svg.png.webp)
Exemple
Voici l'énoncé :
- Créer un nouveau fichier EXCEL supportant les macros vba : QuizUneSeuleQuestion.xlsm
- Créer un nouveau formulaire (userform) basse-cour via l'onglet Développeur et la fenêtre VBA
- Donner le titre "Basse-cour" au formulaire
- Insérer une étiquette lQuestion (label) porteuse de la question : "Quel animal règne dans une basse-cour ?"
- Insérer une boite de texte tReponse (textbox) porteuse de la réponse : "???"
- Insérer six boutons (commandbutton) de réponses possibles
- un bouton nommé bLapin et affichant LAPIN
- un bouton nommé bPoulet et affichant POULET
- un bouton nommé bCoq et affichant COQ
- un bouton nommé bLibellule et affichant LIBELLULE
- un bouton nommé bAnnuler et affichant ANNULER
- un bouton nommé bPasser et affichant PASSER
- Programmer la réponse à insérer dans la boite de texte tReponse sur chaque clic de bouton
- si bLapin , bPoulet , bLibellule afficher PERDU dans la boite de texte tReponse
- si bCoq afficher GAGNE dans la boite de texte tReponse
- si bAnnuler afficher ABANDON dans la boite de texte tReponse
- si bPasser afficher REFLEXION dans la boite de texte tReponse
- Et enfin tester le formulaire
Solution
- Nous allons réaliser une macro qui permettra de saisir de réponse dans un formulaire et de déclencher une action suivant cette réponse. Pour ce faire :
- il faut créer un userForm en allant dans Onglet Développeur – VBA Insertion UserForm
- nommer le formulaire BasseCour (propriété Name) et lui donner le titre "basse-cour" (propriété Caption)
- insérer l'intitulé lQuestion (propriété Name) et lui donner le libellé "Quel animal règne dans une basse-cour ?" (propriété Caption)
- insérer 6 boutons bLapin à bPasser (propriété Name) et leur donner les libellés respectifs : lapin, poulet, coq, libellule, annuler, passer
- insérer la boite de texte tReponse (propriété Name) et lui donner le libellé "?" (propriété Text)
- mettre en page et en couleur les 9 objets Activex ainsi créés
- programmer chaque bouton avec son résultat respectif (voir énoncé) avec le code VBA suivant
- enfin exécuter et tester le formulaire toujours via la fenêtre VBA
Private Sub bLapin_Click()
tReponse = "PERDU"
End Sub
Private Sub bPoulet_Click()
tReponse = "PERDU"
End Sub
Private Sub bCoq_Click()
tReponse = "GAGNE"
End Sub
Private Sub bLibellule_Click()
tReponse = "PERDU"
End Sub
Private Sub bAnnuler_Click()
tReponse = "ABANDON"
End Sub
Private Sub bPasser_Click()
tReponse = "REFLEXION"
End Sub
![](../../../I/FormulaireBasseCour.png.webp)
Exemple de formulaire simple VBA Excel
![](../../../I/Nuvola_apps_khelpcenter_green.png.webp)
Conseil
Pour utiliser ce formulaire pour une nouvelle question, il suffit de modifier les contenus des libellés, des boites de texte et des boutons ACTIVEX et de programmer différemment les actions consécutives au clic de chaque bouton
Cet article est issu de Wikiversity. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.