Questionnaire avec tirage au hasard d'une question

Bonjour,

je suis en pleine révision dans un domaine qui nécessite de connaitre par coeur de multiples données (comme pour beaucoup d'examens!). j'ai donc décidé de me faire révisé à l'aide d'un fichier excel. Voici comment s'organise mon fichier pour l'instant : 5 colonnes, les trois premières pour classer les questions en thème, sous thème 1 et sous thème 2. une quatrième colonne question et une cinquième pour la réponse

A (théme) | B (sous thème) | 2 (sous thème 2) | D (question) | E (réponse)

I 1 a question I1a n°1 réponse I1a n°1

I 1 a question I1a n°2 réponse I1a n°2

I 1 b question I1b n°1 réponse I1b n°1

I 2 a question I2a n°1 réponse I2a n°1

II 1 a question II1a n° 1 réponse II1a n°1

ce que j'aimerai avoir comme résultat c'est de pouvoir choisir (avec par exemple des menus déroulants mais peu importe)

le théme, sous théme ou sous thème 2 voulant être révisé. et que une fois ce choix fait, la macro permette d'afficher une question au hasard du thème/sous thème/sous thème choisit. une fois afficher, l'utlisateur aura 3 solutions : retourner au choix de thème, retirer une question suivante toujours selon les memes choix, et afficher la réponse à sa question.

Je pense que pour effectuer le tirage de la question il faudrait utiliser le code VBA du tirage d'un chiffre au hasard (mes queslques cours VBA datent de 4 ans donc je suis vraiment rouillé) mais comment appliquer cette méthode avec les sous thèmes 1 et 2? si quelqu'un pourrait m'aider car j'ai de grosses lacunes

merci d'avance

Bonjour. Bienvenu sur le Forul

Envoie ton fichier avec les données. Nous te ferons cela

Cordialement

Salut LeBagel et bienvenue sur le Forum,

Pour le tirage au sort de la question, ce n'est pas si compliqué ; regarde le fichier ci-joint.

Pour le reste, je pense que tu devrais quand même nous fournir un bout de fichier.

Cordialement.

EDIT : Salut Amadéus, on se croise souvent ces temps

832lebagel.xlsm (15.60 Ko)

oh merci pour ces réponses rapides!

je dois avouer que j'ai à peine commencer ma liste de questions, j'ai surtout créer les thémes et sous thémes pour me guider pour l'instant. comme j'ai entre 3500 et 4000 questions à saisir, je voulais d'abord trouver le code pour commencer ç m'interroger à l'avancement de la saisie!

je vous joins le fichier!

encore merci

244question-sur-voie.zip (12.84 Ko)

Rebonjour,

Je trouve ta demande un peu vague et je ne sais pas trop dans quelle direction partir.

Je te propose alors un truc un peu boiteux mais qui pourrait finalement te convenir.

Je n'ai pas tenu compte de ton troisième critère ("Sous-thème 2" dans ton texte explicatif ou "Titre" dans ton fichier Excel) car il n'y a pas assez de questions le justifiant.

La macro proposée fait donc ceci : Après que tu aies choisi la "Catégorie" en colonne A, le "Sous Chapitre" en colonne B et que tu aies cliqué sur le bouton en place sur la feuille 1, les références des colonnes A et B de la dernière ligne sont prises en compte et la macro recherche d'une manière aléatoire un numéro de question visible à l'écran (ou correspondant à la catégorie et au sous-chapitre choisis) et la reporte sur la feuille 2.

Si cette première partie te convient, je pourrai regarder pour répondre à tes autres souhaits (avoir la réponse qui s'affiche sur la feuille 2, dans la colonne E, ou choisir une autre question de la même catégorie et du même sous chapitre).

Si vraiment tu as finalement beaucoup de questions de la même catégorie et du même sous chapitre et qu'il serait justifié d'étendre en plus le premier choix au troisième critère "Titre", ce ne serait pas si compliqué.

A te relire.

je t'avoue que je ne peux pas tester ton code. lorque je clique sur ta macro il y a la fameuse erreur : "erreur d'execution 438"

Pour plus de clarté ce que j'aurai aimé dans un cas parfait : c'est de ne pas passer par les feuilles directement. A la limite de créer le bouton "question au hasard" sur la feuille 1 et le tableau des thémes, sous thémes, titres, questions et réponses sur une feuille 2.

l'utilisateur lancant le fichier atterirait donc sur la feuille 1 et lancerait la macro avec un bouton tout simple. A la limite, la feuille 2 pourrait etre protégé une fois le fichier terminé. le lancement de la macro lancerait la feuille de saisie n°1 (type inputbox)

feuille de saisie n°1 : une fois la macro de la feuille 1 lancé, une feuille de saisie type inputbox avec des menus déroulants allant chercher les infos dans le tableau de la feuille 2 apparait. l'utilisateur peut donc selectionner sa catégorie, sous chapitre et titre ( donc présence de 3 menus déroulants dans la feuille de saisie). A la droite des 3 menus déroulants, un bouton : "question au hasard". une fois celui-ci cliqué, le calcul se lance selon les critères choisis et apparition de la feuille de saisie n°2.

feuille de saisie n°2 : intitulé de la question déterminé au hasard (cherché dans le tableau de la feuille 2 bien sur) et 3 boutons en bas ou a gauche :

  • bouton "réponse" : renvoie à la feuille de saisie n°3
  • bouton "questions suivante" : copie de la macro "question au hasard" de la feuille de saisie n°1. il y a donc un recalcul selon les mêmes critères choisis et apparition d'une nouvelle feuille de saisie 2.
  • bouton "menu" : renvoit à la feuille de saisie 1

feuille de saisie n°3 : apparition de la l'intitulé de la question et en dessous ou à côté, de la réponse: 2 boutons sur la droite qui sont identiques à ceux de la feuille de saisie n°2 :

  • "question suivante"
  • "menu"

voilà j'espere avoir été clair car c'est vrai que ma demande était vaseuse en effet! les feuilles de saisie sont idéales en fait car elles permettent une plus grande rapidité lors de la révision, plutot que de devoir repasser par un changement de feuille pour obtenir la réponse.

mais j'ai un doute sur la possibilité de faire apparaitre des menus déroulants dans une inputbox, je ne l'ai jamais fait auparavant.

En tout cas merci encore de prendre le temps de m'aider

Je me suis replonger une petite heure dans le VBA cette nuit. J'ai donc créer l'interface basé sur 3 userforms que j'aimerai utiliser (et non pas inputbox....n'importe quoi).

j'ai crée de plus la macro sur la page principale lancée en cliquant l'objet "questionnaire"

je n'ai pas eu le temps de faire les liens des bouttons menant aux autres userforms car je dois partir au boulot mais ca ne posera pas de problème.

En fait ce qui me manquera vraiment c'est la formule pour aller chercher au hasard la question et l'affiché dans le userform "question". mais peut être qu'avec le code de ton fichier je pourrai me débrouiller. je verrai cela ce soir


le fichier modifié

290question-sur-voie.zip (22.10 Ko)

Salut,

Je ne connais pas l'erreur d'exécution 438. Peux-tu fournir le texte qui va avec ainsi que m'indiquer sur quel ligne du code la macro bloque ? J'ai essayé ce matin mon code sur un autre PC que celui sur lequel je l'ai créée et ça fonctionne tout aussi bien.

Je n'ai pas trop l'envie de voir tes autres propositions tant que ça bloque au niveau des macros que je te propose.

Cordialement.

erreur d'execution 438 :

propriété ou méthode non géré par ce projet.

le bouton "continuer" est grisé et seuls les boutons "fin" "déboguage" et "aide" sont disponibles.

en cliquant sur déboguage, il m'affiche en jaune la ligne suivante :

xx = WorksheetFunction.RandBetween(2, DerLig)

j'ai excel 2007 pour info, je ne sais pas d'où peut venir cette incompatibilité avec mon pc, je n'ai jamais eu de soucis pour faire tourner de macro.

Re,

Je présume que ta version Excel ne prend pas en charge la fonction RandBetween

Dans ce cas, je ne sais pas trop comment d'aider. Je te conseille alors d'indiquer ce fil comme clos - puisque peu de membres s'intéressent encore à un fil déjà bien entammé - et d'en recommencer un autre. Désolé de ne pas pouvoir t'aider plus

Cordialement.

Bonjour

Un essai avec les salutations d'un ex SES

Bon très bien. . Je n'arrive pas trop à comprendre ppourquoi ca ne prend pas en charge mais bon...je ne peux même pas modifier la version car il s'agit de mon ordinateur proffessionnel et je n'en ai pas d'autre.

merci quad même pour ton aide

je vais essayer sur un autre forum mais d'abord je vais me replonger dans le vba.

Bonjour

LeBagel a écrit :

Je n'arrive pas trop à comprendre ppourquoi ca ne prend pas en charge mais bon

Sois un peu plus explicite

Bonjour,

il m'affiche en jaune la ligne suivante :

xx = WorksheetFunction.RandBetween(2, DerLig)

RandBetween() = Alea.entre.bornes() est une fonction ajoutée par l'utilitaire d'analyse qu'il faut activer dans excel et dans vba.

Le problème est que ces fonctions restent dans la langue d'origine dans vba ce qui pose des problèmes supplémentaires lors du passage d'un excel d'une langue à celui d'une autre langue.

De plus tu n'arriveras pas à utiliser WorksheetFunction.Alea.entre.bornes(2,DerLig), ce qui fait beaucoup...

Il vaut mieux éviter l'utilisation de ces fonctions en vba, en sachant que certaines ont été intégrées à partir d'excel 2007 et ne poseront problème que sur 2003 (ce qui a l'air d'être le cas ici).

Remplacer par la méthode Evaluate :

xx =Evaluate("ALEA.ENTRE.BORNES(2," & DerLig & ")")

ou, bien mieux, reconstruire l'équivalent :

xx = INT((Rnd()*((DerLig+1)-2)+2))

Accessoirement tu as raté la proposition de banzai en haut de cette page.

eric

désolé banzai, j'ai en effet zappé le fait qu'il y avait une deuxième page de réponses! ET Bonjour a toi ex collègue!

Apparement ton fichier marche évidemment comme mes cellules sont presques toutes vides, il m'est difficile de faire un véritable test. Pour l'instant le problème que je vois c'est qu'il n'est pas possible de lancer le questionnaire si les 3 choix ( théme /CHAPITRE/sous chapitre) ne sont pas fait. alors que j'aimerai pouvoir révisé^par exemple sans choisir de sous chapitre.

je n'ai pas vraiment le temps de regarder ton code ce soir, je me rend compte qu'il été un peu ridicule de poster alors que je n'ai plus grandes notions de vba.

Eriiic merci aussi à toi de ton aide, je vais regarder tout ça tranquilement ce week end à tête reposé.

Bonsoir

Regardes cette version si cela se rapproche plus de ta demande

Finalement petite insomnie...

Bon bah...ca a l'air de marcher nickel. Je vais commencer à faire un gros ajout de questions/réponses ce week end!!!

Topic résolu!

Un très très gros merci à tous!

Rechercher des sujets similaires à "questionnaire tirage hasard question"