Finaliser un QCM Exel

cernumos

XLDnaute Nouveau
Bonjour a tous
Voila, j'ai voulu réaliser un QCM sur Exel
J'ai réussi a faire quelque chose de pas mal, avec 3 questions pour le moment (Je rajouterai des question après)
Le QCM marche pas mal, mais j'ai quelque souci et j’espère que vous pourrait m'aider a les resoudres

Je vous joint mon fichiers


1)Quand j’appuie sur le bouton "question suivante", la question change bien.Mais quand je suis a la dernière et que je clique sur la suivante (qui n'existe pas) il me met une 4eme question.Comment faire pour revenir a la première, une fois la dernière question atteint?
2)La valeur dans la cellule juxtaposé a "Votre Réponse est" est a 0 a la première question et change au moment ou je choisi ma réponse, mais malheureusement, quand je clic sur la suivante,cette valeur reste avec la valeur de la réponse précédente choisi....Comment faire pour que cette valeur revienne toujours a 0 a chaque changement de question?
3)Enfin, je voulai savoir comment faire pour que ,une fois la réponse choisi sur une question, les autres boutons se bloquent, sauf le bouton "Question suivante" bien entendu....

Je vous remercie d'avance pour votre aide
Cordialement
 

Pièces jointes

  • QCM essai.xlsm
    17.7 KB · Affichages: 97
  • QCM essai.xlsm
    17.7 KB · Affichages: 92
  • QCM essai.xlsm
    17.7 KB · Affichages: 91

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Finaliser un QCM Exel

Bonjour cernumos,

1)Quand j’appuie sur le bouton "question suivante", la question change bien.Mais quand je suis a la dernière et que je clique sur la suivante (qui n'existe pas) il me met une 4eme question.Comment faire pour revenir a la première, une fois la dernière question atteint?
avec ce code:
Code:
Sub Bouton4_Clic()
Sheets("Feuil1").Unprotect
Range("question_numero") = Range("question_numero") + 1
If Range("question_numero") > Sheets("Feuil2").Range("A65535").End(xlUp).Row Then Range("question_numero") = 1
Sheets("Feuil1").Protect
End Sub

à+
Philippe
 

camarchepas

XLDnaute Barbatruc
Re : Finaliser un QCM Exel

Bonsoir Philippe, Cernumos


Voici , une utilisation de drapeau pour le blocage des boutons , une remise à zéro de la bonne case , un ajout message attente réponse et retour à la premiere question
 

Pièces jointes

  • QCM essai.xlsm
    21.5 KB · Affichages: 76
  • QCM essai.xlsm
    21.5 KB · Affichages: 71
  • QCM essai.xlsm
    21.5 KB · Affichages: 69
Dernière édition:

ctiquoi

XLDnaute Nouveau
Re : Finaliser un QCM Exel

Bonjour,

J'y vais de ma petite solution.

Elle est surtout intéressante pour la construction du QCM qui est plus solide et ergonomique.

Empêche également de passer à la question suivante tant qu'un choix n'est pas fait.
 

Pièces jointes

  • qcm.xlsm
    30.1 KB · Affichages: 86
  • qcm.xlsm
    30.1 KB · Affichages: 74
  • qcm.xlsm
    30.1 KB · Affichages: 75

cernumos

XLDnaute Nouveau
Re : Finaliser un QCM Exel

Merci a vous 2
C'est bien ce que je voulai faire
Vos deux méthode sont différentes, mais ca fonctionne comme je voulai.....

Maintenant, j'aimerai bien comprendre comment vous avez fait, car je voudrait apprendre, au cas ou j'en refait d'autre un jour......
:D
 

cernumos

XLDnaute Nouveau
Re : Finaliser un QCM Exel

Oui maintenant c'est 3 méthodes...Toutes les 3 différentes....
Maintenant je voudrais bien savoir laquelle est la plus simple a realiser, et comment la faire....
Par contre, Camarchepas, ta méthode ne permet pas de rajout de question.....on tourne que sur les 3 questions
 

cernumos

XLDnaute Nouveau
Re : Finaliser un QCM Exel

Merci pour ta reponse Ctiquoi.....
Ta méthodes est bien differentes des 2 autres a ce que j'ai pu voir.....
Maintenant est-elle simple a appliquer????
J'ai regarder la macro des boutons....C'est chaud quand meme..... :-(
 

camarchepas

XLDnaute Barbatruc
Re : Finaliser un QCM Exel

Re ....

Voilà ,

Autant de questions que tu veux maintenant ,

il suffit juste de les ajouter à la feuille 2
 

Pièces jointes

  • QCM essai.xlsm
    22.4 KB · Affichages: 73
  • QCM essai.xlsm
    22.4 KB · Affichages: 72
  • QCM essai.xlsm
    22.4 KB · Affichages: 72

camarchepas

XLDnaute Barbatruc
Re : Finaliser un QCM Exel

Oulà ,

Bon je'ai ajouté un suivi des réponses en feuil3 .

Bonne adaptation et bon courage.

il manquerait juste le nom prénom de la personne pour une meilleur traçabilité.
 

Pièces jointes

  • QCM essai.xlsm
    23.4 KB · Affichages: 82
  • QCM essai.xlsm
    23.4 KB · Affichages: 66
  • QCM essai.xlsm
    23.4 KB · Affichages: 71

cernumos

XLDnaute Nouveau
Re : Finaliser un QCM Exel

Merci Camarchepas, j'ai réussi a combiné un petit truc entre ta méthode et celle de Philippe
Ça tourne bien
Par contre j'ai pas trop réussi a décoder le retour a la 1er question....Que ce soit avec ta méthode ou celle de Philippe...
Maintenant autre petite question, est ce que l'on peut faire que, quand on clic sur "Question Suivante", on ne passe pas a la question suivante dans l'ordre mais en ordre aléatoire?

N.B: Je vous joint mon fichier modifier avec vos methode
 

Pièces jointes

  • QCM essai.xlsm
    19.2 KB · Affichages: 69
  • QCM essai.xlsm
    19.2 KB · Affichages: 73
  • QCM essai.xlsm
    19.2 KB · Affichages: 65

ctiquoi

XLDnaute Nouveau
Re : Finaliser un QCM Exel

Maintenant est-elle simple a appliquer????
J'ai regarder la macro des boutons....C'est chaud quand meme..... :-(

Il n'y a pas que le code qui est impliqué, mais aussi Excel.
Nous utilisons un outil, il est bon de se poser la question de quoi il est capable avant de coder, histoire de ne pas réinventer la roue.

Si je code en C, j'ai pas le choix, j'ai une feuille vierge, mais là j'ai un support qui a des possibilités énormes et en tant que développeur, je recule toujours le moment où je dois mettre le nez dans VBA :)

Pour rajouter les questions et propositions par exemple, tout est géré par formules et la façon de construire les tableaux réponds à certaines règles importantes, tu as juste à insérer les lignes nécessaires dans les deux tableaux.
À l'usage, c'est plus simple et souple que ce que tu as fait, mais en formules et organisation, c'est plus complexe.
Avec ton tableau, pour faire la même chose, sûr que tu aurais été obligé de construire une usine à gaz en VBA avec les bugs que cela implique.

Pour t'en convaincre, j'ai réalisé une version améliorée. Je n'ai pas changé une virgule dans le code.
Tu remarqueras au passage que la proposition choisie passe en gras et en rouge si le choix est faux ou vert s'il est juste. Ce n'est qu'une mise en forme conditionnelle.

La feuille "Quiz" ne reçoit plus comme au départ de valeurs venues du code mais fait appel à des cellules d'une autre feuille.
Ainsi, la feuille reste protégée même pendant le "jeu" puisque je n'y écris plus.
J'ai viré deux lignes de code par boutons, en ce sens mon code devient plus simple.

J'aurais pu masquer les feuilles et protéger le classeur que mon code tournerait pareil sans écrire les bascules sur les boutons et c'est l'organisation du classeur qui permet ça.
Avec ton organisation, tu devrais encore rajouter 2 lignes par bouton (déprotéger et re-protéger le classeur).

Mon code te semble compliqué car tu fais de la macro, pas encore de VBA, mes stagiaires après 3 jours de formations sont capables de le lire et faire quelques retouches.
Apprend les notions de variables, modules, procédures et propriété et tu verras que cela te semblera trivial.

Par exemple, quand un bouton est choisi, il faut masquer les 3 boutons.
Je peux écrire ce code trois fois (sur les 3 boutons), mais s'il y a un bug ou une modification à réaliser, il faut la faire dans les 3 boutons au risque d'en oublier.

J'ai pris l'optique d'écrire ce code qu'une fois, c'est la procédure Sub ButtonSwitch(). Sur mes boutons, j'utilise (j'appelle) cette procédure, ainsi si je dois modifier quelques chose, je le fais dans une seule procédure.
À comprendre le code est plus dur pour toi, mais plus simple à mettre à jour et corriger, et j'aurais pu factoriser encore.

La difficulté n'est pas vraiment dans les lignes, ce n'est que de la syntaxe et ça s'apprend. Ce qui est plus compliqué c'est la démarche choisie, par quel bout prendre les choses, penser à tout, généraliser les problèmes.

Ici le code remet tout à zéro au lancement du classeur, sélectionner la feuille du quizz, afficher la première question, remettre la réponse à zéro.
En effet, il faut penser que le classeur peut être enregistré alors que nous sommes sur la question 4 par exemple.
Pour le lancement du classeur recherche ThisWorkbook et Workbook_Open sur Google.

C'est ce que l'on appelle l'algorithme, et c'est là qu'est la vrai difficulté car elle demande de l'expérience, par exemple penser qu'un taux de tva un jour va changer.
La programmation, ce n'est que la traduction à l'aide d'une syntaxe (un langage) d'un cheminement de pensée.
Lis les lignes en vert (elles commencent par une apostrophe), ce sont des commentaires qui t'éclairerons sur la philosophie générale du programme.

Tu as au moins appris, qu'il y a autant de façon de faire que de programmeurs ;).
 

Pièces jointes

  • qcm.xlsm
    34 KB · Affichages: 91
  • qcm.xlsm
    34 KB · Affichages: 83
  • qcm.xlsm
    34 KB · Affichages: 86

cernumos

XLDnaute Nouveau
Re : Finaliser un QCM Exel

Merci Ctiquoi pour ta reponse
J'ai regardé ton fichier...et essayer de rajouter une question,mais le QCM n'as pas suivit :-(
Je vais regarder ca de plus prés....
Par contre comme tu dis, il y a autant de code que de programmateur
Aprés chacun choisit ca methode
As tu regardé mon dernier fichier envoyé? Qu'en pense tu????
 

Discussions similaires

Réponses
14
Affichages
794

Statistiques des forums

Discussions
312 492
Messages
2 088 931
Membres
103 984
dernier inscrit
maliko67