Macros-commandes VBA/Exercices/Formulaire simple
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