Passer au contenu

Créer un questionnaire

Nul besoin d’un logiciel spécialisé pour créer un QCM : saisissez vos questions dans une feuille Excel puis, pour les soumettre, utilisez une macro. L’exemple peut être téléchargé sur www.01net.com.

Les QCM (questionnaires à choix multiple) sont partout : entretien d’embauche, sondage, test de connaissances… Vous pouvez en créer un vous-même à l’aide d’Excel (version 97 ou plus récente). Le principe est simple : dans une feuille de calcul, vous saisissez vos questions et leurs différentes réponses. Une macro écrite en VBA (le langage de programmation inclus dans Office) se chargera ensuite de poser chaque question dans une fenêtre de dialogue, de recueillir la réponse du candidat, de la comparer à la bonne et, à la fin du questionnaire, d’afficher le score obtenu.

Une initiation au VBA

Pour illustrer la marche à suivre, nous avons conçu un test sur l’univers de la BD que nous vous proposons de télécharger à l’adresse www.01net.com/dl/qcm.xls. Bien sûr, notre exemple est perfectible, mais il vous donnera un aperçu des extraordinaires possibilités du langage de programmation d’Excel.

1. Saisissez les questions et les réponses

Lancez Excel et créez une nouvelle feuille. Dans notre exemple, les questions sont placées, à raison d’une par ligne, dans les lignes 11 et suivantes. Le nombre de questions est illimité (il sera évalué par la macro) mais vous ne devez pas laisser de ligne vide entre les questions. Chaque question est écrite en colonne A et peut recevoir quatre réponses, ‘ numérotées ‘de 1 à 4, respectivement placées dans les colonnes C, D, E et F. Le numéro de la réponse choisie par l’utilisateur sera automatiquement stocké, par la macro, en colonne G et comparé au numéro de la bonne réponse, lui-même préalablement inscrit en colonne B (cette colonne sera bien entendu masquée dans la version donnée au candidat !). Enfin, la colonne H contiendra les résultats : un 1 sur fond vert pour chaque bonne réponse et un 0 sur fond rouge pour chaque mauvaise.

2. Créez la fenêtre de dialogue

La façon la plus conviviale d’interroger le candidat consiste à lui proposer chaque question, et ses quatre réponses possibles, dans une fenêtre de dialogue faisant office de formulaire. Il lui suffira alors de cliquer sur le bouton associé à la réponse qu’il juge correcte. Pour créer cette fenêtre, commencez par ouvrir l’éditeur Visual Basicen tapant Alt + F11.Dans l’écran qui apparaît, déroulez Insertion, UserForm.Donnez à la nouvelle fenêtre une taille proche de celle qui figure sur l’écran 3. Puis appuyez sur F4,pour ouvrir sa fenêtre de propriétés. Dans le champ (Name),tapez Frm_Qcmet appuyez sur Entrée.Le contenu de ce champ définit le nom du contrôle. Dans le champ Caption(qui représente ce qui s’affichera dans la barre de titre de cette fenêtre), saisissez Questionnaire à choix multipleset tapez Entrée.

3. Placez les zones de texte…

Vous allez maintenant ajouter, dans cette fenêtre, différents contrôles. Ce terme, utilisé par Visual Basic pour Application (VBA), désigne tous les éléments qui peuvent apparaître dans une fenêtre de dialogue (cases à cocher, boutons, zones de texte, barres de défilement…). Commencez par définir une zone de texte chargée d’afficher les questions. Pour cela, cliquez sur l’outil Zone de textede la barre d’outils Boîtes à outils(si cette barre n’apparaît pas, déroulez Affichage, Boîte à outils). Dessinez un rectangle dans la partie supérieure de la fenêtre (en blanc sur l’écran ci-dessous). Comme vous l’avez fait à l’étape précédente, appuyez sur F4et donnez la valeur TxtQuestionau champ (Name)et la valeur “” (une chaîne de caractères vide) au champ Caption.Cliquez ensuite sur l’outil Frameet dessinez un cadre (sur l’écran, c’est le filet qui entoure les six boutons). Appuyez sur F4et donnez au champ (Name)la valeur Frame1et au champ Captionla valeur Choisissez une réponse.

4. … puis les boutons

Vous allez maintenant créer six boutons : quatre pour les réponses proposées, un ‘ je ne sais pas ‘, et un pour interrompre le test. Cliquez sur le bouton Bouton de commandeet dessinez le premier des six boutons, en haut à gauche. Tapez F4et donnez à ce bouton le nom Btn1.Créez un bouton en dessous, que vous nommerez Btn2de la même façon et un troisième bouton en bas à gauche, nommé BtnAnnule.Faites la même chose à droite, en créant, de haut en bas, les boutons Btn3, Btn4et BtnNeSaitPas.Pour ce dernier, tapez la phrase Je ne sais pasdans son champ Caption,cliquez sur le bouton placé à droite de ForeColoret, dans la palette de couleurs qui s’affiche, cliquez sur le rouge.

5. Affectez des fonctions aux boutons de réponses

Vous allez maintenant associer des instructions à des événements : ici, un clic sur un bouton. Cliquez deux fois sur le bouton Btn1(en haut à gauche). Entre les lignes Private Sub Btn1_Click()et End Sub,saisissez les deux lignes suivantes : MaReponse = 1Frm_QCM.HideLa première instruction attribue la valeur 1 à la variable MaReponse, dont le contenu sera comparé au numéro de la bonne réponse. L’instruction Frm_QCM.Hide efface le formulaire, qui sera réaffiché à la question suivante. Pour le faire réapparaître, cliquez sur Frm_QCMaffiché dans la fenêtre Projet.De la même manière, cliquez deux fois sur le bouton Btn2et, entre Private Sub Btn2_Click()et End Sub,tapez : MaReponse = 2Frm_QCM.HideFaites de même pour les boutons 3 et 4 en changeant la valeur de la variable MaReponse.

6. Passez à la gestion des boutons spéciaux

Sur les six boutons de la fenêtre, vous avez traité les quatre qui étaient associés à une réponse ‘ normale ‘du candidat. Il en reste deux. Le premier, BtnAnnule,permet au candidat d’interrompre le test à tout moment. Cliquez deux fois sur ce bouton (en bas à gauche). Entre les deux lignes qui apparaissent, tapez simplement End. Cette instruction met fin à la macro. Enfin, vous avez ajouté un bouton ‘ Je ne sais pas ‘(en bas à droite). Cliquez deux fois dessus et, entre les deux lignes qui apparaissent, tapez MaReponse = -1. Cette réponse sera bien sûr considérée comme fausse car le numéro de la bonne réponse est forcément compris entre 1 et 4. Quand vous tapez des instructions entre Sub… et End Sub, il est inutile de les valider : l’éditeur VBA les place automatiquement à la bonne place.

7. Tapez la macro

Vous allez maintenant saisir la macro qui se chargera de placer, une par une, les questions dans les différents contrôles du formulaire et de collecter les réponses. Dans l’éditeur Visual Basic, déroulez Insertion, Moduleet saisissez le listing ci-dessous. La macro place le curseur en bas du tableau de questions (instruction Selection.End(xlDown).Select). Comme vos questions commencent en ligne 11, une simple soustraction permet à la macro de déterminer le nombre de questions. Ensuite, la boucle While Ligne <= NbLignes + 10permet à la macro de balayer les questions. Pour chacune, les quatre variables, de Rep(1) à Rep(4), reçoivent les réponses, lues dans les colonnes C, D, E et F. Le contenu de ces variables est ensuite placé dans la propriété Captiondes boutons de la fenêtre de dialogue. Enfin, l’instruction Frm_QCM.Showdemande l’affichage du formulaire.

8. Associez un raccourci clavier à votre macro

Revenez à votre feuille Excel. Pour cela, déroulez Fichier, Fermer et revenir à Microsoft Excel.Puis faites Outils, Macro, Macros.Dans la liste Nom de la macro,cliquez sur QCM,puis sur le bouton Options.Pour associer, par exemple, le raccourci Ctrl + Qà votre macro, tapez qdans le champ Ctrl +et validez par OK.

9. Effectuez les derniers préparatifs…

Vous devez maintenant masquer la colonne B qui contient les numéros des bonnes réponses. Pour cela, faites un clic droit sur la lettre B en tête de colonne et choisissez Masquer.Dans la cellule A7, saisissez la formule =”Sur les ” & B7 & ” questions”puis, dans la cellule A8, saisissez =”vous avez ” & B8 & ” bonnes réponses”. Pour permettre aux cellules de la colonne H de s’afficher en vert pour une bonne réponse et en rouge pour une mauvaise, sélectionnez la plage H11 : H200 (n’allez pas jusqu’à la ligne 200 si vous avez moins de questions), déroulez Format, Mise en forme conditionnelle,donnez aux listes les valeurs apparaissant sur l’écran 9 et validez par OK.

10. … et lancez le questionnaire !

Tapez Ctrl + Q.Les questions sont placées à tour de rôle dans le formulaire que vous avez créé. Cliquez sur la réponse de votre choix. Si la réponse est correcte, un 1 vert apparaît en colonne H, dans la même ligne que la question ; sinon, cest un 0 rouge qui apparaît.

🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.


EO