Page 1 sur 1

[Résolu]Renvoyer un Tableau conditionné par liste déroulante

Publié : 16 avr. 2018 04:39
par Azerny
Bonjour/bonsoir à tous.

Je me permets à nouveau de demander de l'aide de la communauté. J'explique mon problème :

Je possède (dans le fichier ci-joint à l'adresse "B45") une cellule dans laquelle l'utilisateur choisi un nom parmi une liste
J'aimerais qu'en retour, un tableau associé au nom sélectionné, dans une autre feuille, soit retourné sur une plage de cellule prédéfini.

(Dans mon fichier, l''utilisateur choisirait, dans la cellule "B45" le nom "Nergigante", et le tableau associé en feuille 3, apparaîtrait sur la plage de cellule A46:I68)

Infos complémentaire :
Dans mon cas, le nombre de colonne est fixe et est toujours égale à 9, cependant, le nombre de ligne est soumis à variation (entre 6 et 23 lignes).
Le but étant de réaliser des opérations sur le tableau que ma fonction va chercher.
Je pensais utiliser des fonctions RECHERCHEV() ou RECHERCHEH() mais je ne sais pas comment m'y prendre vu que le nombre de ligne varie
Une macro est présente, sur le fichier mais est inutile au probléme, je ne sais pas s'il est important de le préciser :
J'ai recherché sur le forum, je n'ai pas trouvé de situation similaire (peut-être ai-je mal chercher)

Re: Renvoyer un Tableau conditionné par une liste déroulante

Publié : 16 avr. 2018 05:26
par Etwas
Salut,
Merci pour cette plongée matinale dans ces mondes mystérieux.
Je ne t'apporte pas la solution "clef en main" mais je te suggère des pistes puisque tu as les capacités de les développer.
- tu pourrais créer un index (dans la 1° cellule de chaque tableau) qui indiquerai le nombre de ligne (index que tu remplirais manuellement, ou que tu pourrais faire calculer en recherchant la 1° ligne vide)
- ensuite tu fais RECHERCHEV avec le nom sélectionné et tu étends cette recherche au nombre de lignes voulues en fonction de cet index.
- petit préalable : pour plus de facilité, il faudrait que les tableaux soient les uns en dessous des autres et pas 2 par 2 comme dans ta feuille 'Monstres" (mais si tu tiens vraiment à cette présentation, tu pourrais créer un autre index qui t'indiquerait à partir de quelle colonne le tableau concerné commence)
- pour revenir à ta précédente question à propos de tes colonnes qui contiennent des sommes (15+18+12) à multiplier, pourquoi ne pas les scinder dès le départ en autant de colonnes.

Re: Renvoyer un Tableau conditionné par une liste déroulante

Publié : 16 avr. 2018 09:21
par Hubert Lambert
Bonjour,
Etwas a écrit :tu pourrais créer un index.
+1

C'est en effet le meilleur moyen pour éviter de devoir tout chambouler.
J'ajoute un exemple pour illustrer les possibilités (avec mise en forme conditionnelle pour le format des cellules).
Cordialement.

Re: Renvoyer un Tableau conditionné par une liste déroulante

Publié : 16 avr. 2018 11:24
par Azerny
Bonjour à vous,

Merci encore de votre aide, vous êtes des génies les gars *_*.
N'étant qu'un néophyte, je n'ai pas l'habitude de toutes ces astuces, j'en prends bonne note cela dit.

Vous avez totalement répondu à ma question, qui m'a tenu en haleine un moment.
Espérant que cette plongée matinale dans un monde mystérieux vous a plu ;).

P.S. @Etwas pour ce qui est de la question précédente, c'était vraiment uniquement pour la "lisibilité", tu peux voir sur le document joint à quoi m'a servis cette formule (Tableau de la première feuille).
Le tableau, contenant les additions (de B11 à D22 sur la feuille 2) est susceptible de changer à terme. Il faut donc que tout s'adapte correctement en fonction du tableau.

P.P.S. @Hubert Lambert, j'ai étudier les formules que tu as utilisé, afin d'être à même de reproduire si nécessaire.
Lorsque tu utilises la fonction INDEX() Lorsque le deuxième argument est 0 cela signifie quoi ? La ligne 0 du tableau ?? :roll: J'ai tenter de fouiller sur les wiki OOo (https://wiki.openoffice.org/wiki/FR/Doc ... tion_INDEX) ou encore (https://www.openoffice.org/fr/Documenta ... s_calc.pdf) Mais ils ne stipulent pas que la valeur 0 était possible. J'ai du mal à voir ce que cela va chercher même en réalisant des test sur des tableaux.
J'ai appris qu'il était possible de nommer des plages de cellules *_*, c'est génial. ( wai désolé pour mon engouement, je débute comme je le disais :D )
Puis cette idée d'utiliser la formule décaler pour tout bien mettre en place, *_*... ça me serait pas venu naturellement.

Encore merci pour vos lumières :super: Tout mes respects.

Re: Renvoyer un Tableau conditionné par une liste déroulante

Publié : 16 avr. 2018 16:19
par Hubert Lambert
Azerny a écrit :Lorsque tu utilises la fonction INDEX() Lorsque le deuxième argument est 0 cela signifie quoi ?
Cela signifie que tu recevra en retour toutes les lignes de la matrice de référence. Ne néglige pas l'aide intégrée (F1) : tout - ou presque - s'y trouve à portée de main.
Azerny a écrit :J'ai appris qu'il était possible de nommer des plages de cellules *_*, c'est génial.
Tu peux aussi nommer de la même manière des formules. Par exemple :

Code : Tout sélectionner

RECHERCHEV(choix_monstre;index_monstres;3;0) +LIGNE()-LIGNE($B$45) -2
peut devenir "colonne_monstre" et

Code : Tout sélectionner

RECHERCHEV(choix_monstre;index_monstres;3;0) +LIGNE()-LIGNE($B$45) -2
"ligne_monstre", ce qui donnera au final

Code : Tout sélectionner

=SI($A47="";"";DECALER($Monstres.$A$1; ligne_monstre; colonne_monstre))
Et tu gagnes encore en lisibilité :wink:

Re: [Résolu]Renvoyer un Tableau conditionné par liste déroul

Publié : 16 avr. 2018 16:38
par Azerny
Je te remercie encore pour ces informations précieuses.

Du coup, mon soucis est réglé :), je clôture le sujet :)