Changement de données dans un tableau grâce à un menu déroulant

J'ai également ce message qui s'affiche lorsque je clique sur le calcule de stats

image

Bonjour,

Erreur étrange. D'après les forums anglophones, essaye ceci :

Dans L'éditeur VBA > Tools (Outils) > References, dans la liste qui s'affiche scrollez et décochez les lignes commencant par "MISSING:...".

Typiquement cela ce produit pour les libraries "Ref Edit Control".

Personnellement, je n'ai pas le problème donc je ne peux pas tester.

Quant à l'utilisation, à toi de le préciser, pour l'instant il s'agit simplement du premier jet d'une interface pour synthétiser les différentes pages du classeur et attribuer des points. Ce n'est pas encore "opérationnel".

Bonjour,

image

Comme le montre l'image je ne peux pas aller sur les référence du VBA. J'ai essayer de sélectionner la fenêtre, de la fermer et de l'ouvrir mais rien n'y change. M'y prendrais-je mal ?

Bonjour,

Le bouton est bloqué car le code est en cours d'éxécution, bloqué sur le breakpoint de la ligne surlignée en jaune.

cliquez sur le petit carré bleu afin de terminer l'éxécution en cours. Ensuite vous devriez pouvoir ouvrir les références.

image

Parfait, j'avais bien quelque chose en MANQUANT. Dorénavant comment dois je faire pour utiliser les fonctions que vous avez utilisé à l'intérieur ?

Ca dépend de votre niveau en VBA. Si vous comprenez le code vous pouvez l'implémenter/adapter à votre convenance. Sinon, précisez vos attentes et je pourrai adapter le code/userforms en fonction. J'attendais votre retour quant à l'userform ainsi que des précisions concernant les résultats attendus, ou les exporter, etc.

De meme j'avais plusieurs questions que vous avez laissé en suspens, je ne sais pas comment adapter les calculs suivant les bonus/malus etc.

N'hésitez pas à proposer des exemples !

Mince ! Désolé de ne pas avoir répondu à toutes les questions. Pourriez vous me les reposé dans un seule post ? J'y répondrais intégralement cela sera plus facile plutôt que de rechercher les réponse à droite et à gauche ?

Concernant mes compétence en code cela est très simple je n'en ai aucune ^^'

J'ai réussi à trouver une solution sur ce que je désirais. J'ai utilisé la fonction =RECHERCHE qui est plutôt efficace :

Mon objectif est que lorsqu'un joueur sélectionne sa race/classe/niveau et culte, ses caractéristiques sont calculées automatiquement.

Jusqu'à présent grâce votre aide j'ai réussi à bien avancer merci beaucoup.

image

Sur le screen ci-dessus, j'ai réussi sur chaque cellule à rentrer la formule suivante :

=((RECHERCHE(D3;Guerrier!A4:A103;Guerrier!H4:H103))+(RECHERCHEV(E3;'Bonus de Race'!A2:G12;7;FAUX))*D3)+(RECHERCHEV(D4;'Bonus de Culte'!A3:G7;7;FAUX))*D3

Explication : La première partie en bleu va chercher dans la feuille correspondantes (guerrier dans ce cas) la caractéristique correspondante selon le niveau sélectionné dans la cellule D3

Exemple :

Sur le screen ci dessus, si jamais le niveau du personnage est de 15 alors la fonction recherche va aller rechercher dans la colonne A le nombre 15, puis dans la colonne correspondante, par exemple les PV, elle ira chercher sur la même ligne que le niveau 15 les pv correspondant à ce niveau (1084 dans ce cas). Et idem pour chaque cellule. La formule reste la même la seule chose qui change c'est la colonne de recherche du résultat, pr exemple la colonne H pour les pv, C pour la Force, D pour la défense, etc...

Ensuite la partie en orange, il s'agit de la même formule RECHERCHE mais cette fois elle va chercher les bonus à ajouté selon la classe choisie dans la cellule E3, dans la feuille de Bonus de Race et le multiplié par le niveau du joueur (les bonus de culte ou de race sont saisi pour augmenter les stats concerné à chaque niveau)

Exemple :

Si le joueur est un Humain, la formule va dans la feuille Bonus de Race (screen ci dessus) puis va chercher dans le tableau qui va de la cellule A3 à G12 la race correspondante, ensuite va chercher dans le numéro de colonne correspondante au PV (par exemple) donc la 7ème (G), puis va multiplié ce chiffre par le niveau du joueur. Donc si le joueur est un humain de niveau 15, il aura un bonus de PV de 1 multiplié par 15 donc 15 PV se rajouteront à son total de la formule précédente en bleu. Donc 1084 + 15 = 1099

Puis la troisième partie en vert sert à calculé le bonus du culte selon la cellule D4.

Explication :

image

Si le joueur appartient au culte de Bétavition, la formule RECHERCHEV va aller dans la feuille "Bonus de culte", trouvé "Bétavition" dans le tableau qui s'étend de la cellule A3 à G7, puis une fois trouver il ira dans la 7ème colonne (G) pour les PV et la 3ème colonne (C) pour la défense. (Pour chaque caractéristique de la feuille de joueur de la feuille excel "Tableau de calcul", il faut modifié le numéro de la colonne dans la formule comme suit :

RECHERCHEV(D4;'Bonus de Culte'!A3:G7;7;FAUX))*D3 pour les PV qui sera saisi dans la cellule A6

RECHERCHEV(D4;'Bonus de Culte'!A3:G7;3;FAUX))*D3 pour la défense qui sera saisie dans la cellule C6

et ainsi de suite pour les autres caractéristique. Sachant que le numéro de la colonne doit correspondre à la feuille excel sur laquelle la fonction RECHERCHEV fait sa recherche. Donc dans l'exemple choisi la feuille "Bonus de culte".). Dans cette exemple on peut voir que pour le culte de Bétavition le joueur Humain de niveau 15 aura un bonus de 3 points de défense et de 25 PV par niveau. Ce qui donnera 1099 + (25x15) = 1474 pour les PVs (on garde le même exemple jusqu'au bout).

Avantage : J'ai enfin le résultat que je veux dés qu'on sélectionne sa race/culte et niveau. Tout ce calcul automatiquement dés que c'est choisi.

Désavantage : Je suis obligé de créer un fichier excel par classe. Mais ça ce n'est pas très grave à la limite.

Mais du coup j'ai enfin réussi à trouver une solution à mon problème. Qu'en pensez vous Saboh ?

Bonjour,

Je suis heureux de voir que vous avez pu avancer sur votre projet et quasiment le terminer, de manière très pertinente en plus. Si vous le souhaitez je peux vous aider sur ce dernier point car il me semble que vous pouvez vous en sortir sans faire un classeur par classe.

Je lis que la classe est renseignée en E3, auquel cas vous pouvez utiliser la Fonction INDIRECT - Support Microsoft pour désigner la feuille correspondante.

Par exemple

=INDIRECT("Feuil1!A3")

renvoie la valeur contenue dans la feuille Feuil1 en A3.

Donc si vous avez le nom de feuille en E3,

=INDIRECT(E3 & "!A3")

renvoie la valeur de A3 dans la feuille correspondant à la classe renseignée en E3.

En espérant que cela puisse vous aider.

Merci beaucoup. Vous m'avez beaucoup aidez pour avancé dans mon projet. Concernant la formule INDIRECT comment puis je l'intégré dans ma formule déjà existante ?

Si j'ai bien compris c'est la partie bleue qui va chercher les bonus de classe et nécessite l'appel à indirect. Je ne sais pas s'il y en à d'autres, mais voici le principe :

Formule initiale :

=((RECHERCHE(D3;Guerrier!A4:A103;Guerrier!H4:H103))

Formule changée :

=((RECHERCHE(D3;INDIRECT(E3 & "!A4:A103"); INDIRECT(E3 & "!H4:H103"))

Dites moi si ca fonctionne. Une autre alternative est de résumer dans un petit tableau les valeurs de chaque classe possible, puis de faire une recherchev dans ce tableau de la classe recherchée.

Bonjour Saboh, comment allez vous ?

Je viens d'essayer d'intégrer votre formule dans ma cellule mais je rencontre une difficulté :

image

Comme vous pouvez remarquer, j'ai intégrer votre formule dans la première partie de la cellule, j'ai seulement mis A3 dans la formule que vous m'aviez proposé à la place de E3 (pour que la recherche se fasse sur la classe de la cellule A3). J'ai fait la formule dans une cellule à part pour comparé les résultats finaux. Et j'obtiens un décalage avec la nouvelle formule. Sauriez vous pourquoi ?

Voici les 2 formules pour comparé :

Formule 1 (avec le bon résultat) :

=((RECHERCHE(D3;Guerrier!A4:A103;Guerrier!H4:H103))+(RECHERCHEV(E3;'Bonus de Race'!A2:G12;7;FAUX))*D3)+(RECHERCHEV(D4;'Bonus de Culte'!A3:G7;7;FAUX))*D3

Formule 2 (celle avec le mauvais résultat case en orange) :

=((RECHERCHE(D3;INDIRECT(A3&"!A4:A103");INDIRECT(A3&"!H4:H103"))+(RECHERCHEV(E3;'Bonus de Race'!A2:G12;7;FAUX))*D3)+(RECHERCHEV(D4;'Bonus de Culte'!A3:G7;7;FAUX))*D3)

Bonjour,

Je vais bien merci, j'espère que vous aussi. Pouvez-vous joindre le fichier svp ? je vais regarder.

Oui très bien maintenant que je vois le bout de se projet ^^.

Voici le fichier

Je pense que la différence venait justement du fait que la formule initiale "statique" n'est valable que pour les guerriers. Ci-joint une formule qui me semble cohérente car renvoie le meme résultat, via indirect, pour les paramètres identiques.

Merveilleux ça marche du tonnerre ! Merci beaucoup Saboh

Je ne ferme pas encore le sujet au cas ou j'ai de nouveau un soucis. Il me reste à rentré toutes les compétences de chaque classe sans compter, les compétence de race et de culte et le calcul de tout les dégâts selon ces compétences ^^ Y à encore du taf pour moi ^^

Pas de soucis. Mais si tu veux une aide plus "fraiche" je te conseille de faire un autre post, peut etre plus spécifique pour un problème donné, et à la rigueur intégrer un lien vers ce poste-ci. Tu auras probablement plus de points de vue ainsi.

Bien le bonjour,

je rencontre une nouvelle difficulté et cette fois ma méthode ne fonctionne pas.

image image

Sur le tableau ci-dessus cette fois, le problème se situe dans le tableau de compétence de la première image :

Voilà ce que je souhaite réalisé : Dans le tableau de compétence, je souhaiterais que lorsque le joueur sélectionne sa compétence dans la cellule du dessus (A11 par exemple) et bien dans la cellule de la formule (A12 pour notre exemple), la formule recherche aille me chercher la compétence correspondante et affiche tout le descriptif. Cependant, comme la première image le montre, dans la cellule de notre exemple, la cellule A11, la compétence "Maîtrise de la magie" à été sélectionnée, malheureusement, le texte afficher en dessous dans la cellule A12, ne correspond pas à la compétence comme le démontre l'image N°2.

Est ce que quelqu'un saurait pourquoi par hasard ?

Pour toutes les fonctions de Recherche vous devez avoir le tableau cible (précisément la colonne dans laquelle vous cherchez) trié dans l'ordre alphabétique. (C'est écrit dans l'aide de la fonction).

Alternativement, si vos validations de données correspondent EXACTEMENT aux valeurs recherchées, vous pouvez utiliser le "fameux combo" INDEX+EQUIV, qui lui fonctionne sur les listes non triées.

Cependant je vois que vous utilisez RECHERCHE qui est une vieille fonction, alors que vous avez Office 365. Essayez plutot RECHERCHEX.

Fonction Excel : RECHERCHEX (excel-pratique.com)

Qui il me semble peut aussi se passer de tableau trié, suivant les arguments donnés.

Rechercher des sujets similaires à "changement donnees tableau menu deroulant"