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
.