[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.

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

Messagepar Azerny » 16 Avr 2018 05:39

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)
Pièces jointes
Monster Hunter World.ods
Je suis dessus depuis des heures :'(
(33.3 Kio) Téléchargé 10 fois
Dernière édition par Azerny le 16 Avr 2018 12:25, édité 1 fois.
OpenOffice 4.1.1 sur Windows 10
Azerny
Fraîchement OOthentifié
 
Message(s) : 6
Inscrit le : 14 Avr 2018 17:43

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

Messagepar Etwas » 16 Avr 2018 06:26

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
Etwas
Membre cOOnfirmé
Membre cOOnfirmé
 
Message(s) : 230
Inscrit le : 11 Mai 2015 15:50
Localisation : Beaugency

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

Messagepar Hubert Lambert » 16 Avr 2018 10:21

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.
Pièces jointes
Monster Hunter World.ods
(36.62 Kio) Téléchargé 10 fois
AOOo 4.1.2 sur Win7
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)
Avatar de l’utilisateur
Hubert Lambert
InconditiOOnnel
InconditiOOnnel
 
Message(s) : 989
Inscrit le : 06 Avr 2016 08:26

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

Messagepar Azerny » 16 Avr 2018 12:24

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
Azerny
Fraîchement OOthentifié
 
Message(s) : 6
Inscrit le : 14 Avr 2018 17:43

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

Messagepar Hubert Lambert » 16 Avr 2018 17:19

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   AgrandirRéduire
RECHERCHEV(choix_monstre;index_monstres;3;0) +LIGNE()-LIGNE($B$45) -2
peut devenir "colonne_monstre" et

Code : Tout sélectionner   AgrandirRéduire
RECHERCHEV(choix_monstre;index_monstres;3;0) +LIGNE()-LIGNE($B$45) -2
"ligne_monstre", ce qui donnera au final

Code : Tout sélectionner   AgrandirRéduire
=SI($A47="";"";DECALER($Monstres.$A$1; ligne_monstre; colonne_monstre))

Et tu gagnes encore en lisibilité :wink:
Pièces jointes
Monster Hunter World.ods
(36.2 Kio) Téléchargé 6 fois
AOOo 4.1.2 sur Win7
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)
Avatar de l’utilisateur
Hubert Lambert
InconditiOOnnel
InconditiOOnnel
 
Message(s) : 989
Inscrit le : 06 Avr 2016 08:26

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

Messagepar Azerny » 16 Avr 2018 17:38

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
Azerny
Fraîchement OOthentifié
 
Message(s) : 6
Inscrit le : 14 Avr 2018 17:43


Retour vers Tableur

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Google [Bot] et 9 invité(s)