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

Discussions à propos du tableur Calc.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est uniquement dédiée au tableur Calc. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Azerny
Fraîchement OOthentifié
Messages : 6
Inscription : 14 avr. 2018 16:43

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

Message 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)
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Azerny le 16 avr. 2018 11:25, modifié 1 fois.
OpenOffice 4.1.1 sur Windows 10
Avatar de l’utilisateur
Etwas
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 230
Inscription : 11 mai 2015 14:50
Localisation : Beaugency

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

Message 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.
OpenOffice 4.1.5 & LibreOffice 6.0.4.2 (x64) sous Windows 10
Suivre la Coupe du Monde en temps réel !
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

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

Message 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.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Azerny
Fraîchement OOthentifié
Messages : 6
Inscription : 14 avr. 2018 16:43

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

Message 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.
OpenOffice 4.1.1 sur Windows 10
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

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

Message 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:
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Azerny
Fraîchement OOthentifié
Messages : 6
Inscription : 14 avr. 2018 16:43

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

Message par Azerny »

Je te remercie encore pour ces informations précieuses.

Du coup, mon soucis est réglé :), je clôture le sujet :)
OpenOffice 4.1.1 sur Windows 10