VBA avec plusieurs SUB activé par 1 bouton : Pangéa

Bonjour

Je m'appelle Stéphane Côté et je suis enseignant au primaire. Je travaille sur la création d'un jeu, créé par les jeunes intitulé Pangéa. Essentiellement, c'est un jeu à la "dungeon and dragon" où les élèves inventent des bêtes, des quêtes... et lorsqu'on réalise une aventure, le fichier Excel fait apparaître différentes bêtes tout dépendamment de l'endroit où des équipes d'élèves se trouvent. Bien sûr, tout ça est dans l'imaginaire...

Site de Pangéa :

(pour l'instant, il n'y a rien de cliquable, car je m'arrache les cheveux avec le fichier Excel...). Essentiellement, quand nous serons dans la période de création, les élèves rempliront des formulaires (google drive), qui génèrent un tableau Excel, et mon fichier local (celui dont vous en avez une copie ici) ira récupérer les données pour les mettre dans les bons onglets (forêt, plaine, montagne...). L'onglet TNI (Tableau Numérique Interactif) sera mon affichage, diffusé sur le mur de la classe lors d'une aventure...

Pour l'instant, mon fichier Excel m'exige des talents que je n'ai vraiment pas... malgré avoir lu et tenté d'appliquer les éducatifs du cours Excel...

Voici mes défis :

1- Dans l'onglet TNI, bien simple : mon VBA intitulé et attaché au bouton "Pour découvrir les cadeaux si..." fonctionne quand je le programme... Dès que je sélectionne une case au hasard, et que je viens ensuite cliquer sur ce bouton, pouf, la programmation (le VBA) ne fonctionne plus... Je déteste cette erreur qui doit être terriblement simple à résoudre...

2- Les bêtes sont choisies de manière aléatoire dans la colonne C de l'onglet TNI. Le reste est calculé en fonction de ce qui est trouvé aléatoirement dans cette case... J'ai 1 problème et 5 défis pour vous.

  • A) problème : lorsqu'un même animal est choisi 2 fois (faites F9 quelques fois et vous verrez la chose se produire), vous remarquerez qu'elles ont alors exactement les mêmes attributs... Pourtant, je souhaiterais qu'elles aient chacun leurs PH, .... cadeaux différents, comme si 2 mouches apparaissent, elles ne sont pas identiques... Avez-vous une idée comme corriger la chose.

Merci à l'avance. Si vous m'aidez seulement sur un de mes points, je vous en serai grandement reconnaissant.

Au plaisir

Stéphane Côté

20pangea-2.xlsm (34.26 Ko)

Bonjour,

A) problème : lorsqu'un même animal est choisi 2 fois (faites F9 quelques fois et vous verrez la chose se produire), vous remarquerez qu'elles ont alors exactement les mêmes attributs... Pourtant, je souhaiterais qu'elles aient chacun leurs PH, .... cadeaux différents, comme si 2 mouches apparaissent, elles ne sont pas identiques... Avez-vous une idée comme corriger la chose.

:

Un même animal peut apparaître 2 fois, voire même 3 fois!

Ne serait-il pas judicieux d'imaginer une sélection sans doublons ?

A te relire

Cdlt

Bonne idée!

merci!

Bonsoir

Pour amorcer : Attention pas sur que je te suive jusqu'au bout (vacances)

Tabarouette, mais c'est FANTASTIQUE!

Je suis content d'avoir pu réaliser avant de lire ton VBA que je n'avais vraiment pas la connaissance pour résoudre cette énigme de la rareté. Je suis impressionné surtout que je n'arrive à déchiffrer que 30% de ta programmation. Tu viens vraiment de m'aider dans ma situation, mes élèves t'adoreront sans trop savoir qui tu es . Je ferais une quête dans le jeu avec ton avatar comme objectif .

Merci vraiment beaucoup, c'est très très apprécié!

Pour le reste de mes points, j'ai trouvé une autre manière de faire, moins compliqué... Après tout, je n'ai pas besoin du temps réel pour faire diminuer ou augmenter les population des animaux .

Bonnes vacances et merci encore!

Bonjour,

Ma petite contribution pour faire avancer le schmilblick

Cdlt

19pangea-2-jep.xlsm (41.82 Ko)

C'est fantastique le truc pour l'aléatoire sans que entre des nombres négatifs et positifs, merci beaucoup!

J'ai 2 questions, une pour Bonzai 64 et les autres, c'est pour le premier qui l'aura

Pour Bonsai64 :

Dans ton VBA Bonsai, tu as mis ceci :

Nb = Application.Sum(.Range("W6:W13"))

ReDim Tablo(Nb)

For J = 6 To 13 ' De la ligne 6 à la ligne 13

où le W6:W13 représentent la plange des valeurs à calculer. Puisque mes élèves vont alimenter ce tableau (par un formulaire), il se peut que pour la forêt par exemple, que j'ai des données lors de la semaine 1 allant de W6 à W10, ensuite la semaine suivante, ils en ajoutent 3.... Comment pourrais-je écrire la fin du "Range" pour qu'Excel sache s'arrêter à la fin des valeurs? Sinon, je devrais retourner dans tous les calculs et changer le W13 par la bonne valeur (car vous avez eu un tableau, mais en fait, il y en 5 (il y a les bêtes des montagnes, du lac....).

Question 2, est-ce qu'un bouton peut "savoir" dans quelle rangée ou ligne il se trouve. Je m'explique un peu. Dans mon exemple, le bouton "pour découvrir les cadeaux si..." se trouve sur la rangée "4" (à la fin, il y aura ainsi 18 boutons). Quand on clic sur ce bouton, il doit faire apparaître la valeur dans les cases M4:N4... Mais si je mets un autre bouton sur la rangée 5, celui-là doit faire apparaître les valeurs de la case M5:N5. Ainsi, est-ce que je peux programmer la chose pour que le VBA "regarde" sur quelle ligne il se trouve et ainsi aller chercher les valeurs sur la même ligne?

Merci mes sauveteurs sûrement Européens

Bonjour

Une suite

Bon, je viens de terminer mon fichier excel

Et j'ai probablement besoin de votre aide. Grâce à BonsaI, j'ai sauvé un temps fou pour clôner les petits boutons qui font apparaître les cadeaux, et ça fonctionne très bien. La formule était suffisament simple pour que je puisse la comprendre et modifier ce qu'il y a avait à modifier.

Concernant ta formule pour tenir compte de la valeur de rareté de la bête, là par contre, je n'ai pas été en mesure de l'adapter à mon tableau... J'ai manqué de temps alors je l'ai fait comme je savais le faire, en me disant que je saurai sûrement décortiquer ta progammation pour l'adapter à mon tableau d'ici décembre. Pour l'instant, je clic sur F9 pour actualiser la page.

Bref, j'ai une demande spéciale. Mes élèves vont se lancer demain matin, dans ce jeu, et nécessairement, ils vont tuer des bêtes qu'ils ont inventés (d'où les fautes d'orthographes dans le tableau).

Voici mon défi pour vous :

J'aimerais que lorsqu'on clic sur "Cadeaux 5" de la feuille TNI (ou n'importe lequel), que dans la feuille de la bête se trouvant dans la colonne C (feuille TNI), que le bouton aille "ajouter" à la case AA de la bonne feuille (forêt, lac, plaine...), qu'il y ait un +1 qui se fasse à chaque fois qu'on cliquera sur le bouton...

Je savais comment programmer la chose si chaque bouton aurait été associé à une ligne précise, mais vu que le bouton sait "lire" sur quelle ligne il se trouve (voir le vba), alors comment pourrait-il faire un "Range("AA3") = Range("AA3") + 1" et savoir que la "mortalité" est bien ajoutée à la bonne bête?

Merci encore .

10pangeatbi2013-1.xlsm (172.53 Ko)

Bonjour

Il faut respecter l'orthographe entre les lieux notées en page TNI et les noms des pages

A tester

Rechercher des sujets similaires à "vba sub active bouton pangea"