[Résolu]liste de choix sur deux zones + valeur associée

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]liste de choix sur deux zones + valeur associée

Messagepar Arisoy » 13 Juin 2020 22:35

Bonjour,

j'ai un document qui contient deux listes de choix : Des couleurs et des jours. J'aimerais que lorsque je choisis une des valeurs de la liste, le nombre qui lui est associé s'affiche également.

En plus de cela j'aimerais faire une sorte de "comboliste" qui regroupe les deux déjà existante en une seule. Avec la aussi le nombre associé qui s’affiche a coté.

Pour plus de clarté j'ai fais un petit fichier exemple. Je vous le mets en pièce jointe. J'ai mis en jaune les cellules sur lesquelles je bloque.

D'avance merci
Pièces jointes
Exemple.ods
(11.8 Kio) Téléchargé 49 fois
Dernière édition par micmac le 14 Juin 2020 21:00, édité 2 fois.
Raison: [Résolu] remplace [resolu]
LibreOffice Version 6.1.5.2 sous Debian Buster
Arisoy
NOOuvel adepte
NOOuvel adepte
 
Message(s) : 21
Inscrit le : 01 Juin 2020 19:02

Re: liste de choix sur deux zones + valeur associée

Messagepar OOotremer971 » 13 Juin 2020 23:51

Bonjour,

PAs compris le résultat attendu en J13:K13 si tu pouvais donner un exemple. Merci
En K3 :
Code : Tout sélectionner   AgrandirRéduire
=RECHERCHEV(J3;$B$4:$D$9;3;0)

En K8 :
Code : Tout sélectionner   AgrandirRéduire
=RECHERCHEV(J8;$F$4:$H$10;3;0)

En validité de J13 :
Code : Tout sélectionner   AgrandirRéduire
SI(LIGNE(INDIRECT("A1:A"&NBVAL(_L1;_L2)))>NBVAL(_L1);INDEX(_L2;LIGNE(INDIRECT("A1:A"&NBVAL(_L1;_L2)))-(NBVAL(_L1)));SI(LIGNE(INDIRECT("A1:A"&NBVAL(_L1)))<=NBVAL(_L1);INDEX(_L1;LIGNE(INDIRECT("A1:A"&NBVAL(_L1))));""))

Les plages B4:B9 et F4:F10 sont respectivement nommées _L1 et _L2
en K13 :
Code : Tout sélectionner   AgrandirRéduire
=SIERREUR(RECHERCHEV(J13;$B$4:$D$9;3;0);RECHERCHEV(J13;$F$4:$H$10;3;0))


A+
Pièces jointes
ExempleArisoi_Mod1.ods
(8.9 Kio) Téléchargé 42 fois
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian 10
Ubuntu 18.04.4 LTS
OpenSuse Leap
Avatar de l’utilisateur
OOotremer971
ManitOOu
ManitOOu
 
Message(s) : 2503
Inscrit le : 16 Avr 2010 14:31

Re: liste de choix sur deux zones + valeur associée

Messagepar Arisoy » 14 Juin 2020 00:51

Super!

Merci pour la réponse.

Par contre tu pourrais m'expliquer la formule pour la validité :
OOotremer971 a écrit:En validité de J13 :
Code : Tout sélectionner   AgrandirRéduire
SI(LIGNE(INDIRECT("A1:A"&NBVAL(_L1;_L2)))>NBVAL(_L1);INDEX(_L2;LIGNE(INDIRECT("A1:A"&NBVAL(_L1;_L2)))-(NBVAL(_L1)));SI(LIGNE(INDIRECT("A1:A"&NBVAL(_L1)))<=NBVAL(_L1);INDEX(_L1;LIGNE(INDIRECT("A1:A"&NBVAL(_L1))));""))


Je comprend rien... :? Et je vais devoir adapter ça à plus de deux zones... Je vois pas du tout comment faire
LibreOffice Version 6.1.5.2 sous Debian Buster
Arisoy
NOOuvel adepte
NOOuvel adepte
 
Message(s) : 21
Inscrit le : 01 Juin 2020 19:02

Re: liste de choix sur deux zones + valeur associée

Messagepar OOotremer971 » 14 Juin 2020 01:16

Arisoy a écrit:Et je vais devoir adapter ça à plus de deux zones... Je vois pas du tout comment faire

J'en ai déjà une toute prête pour quatre plages :
Code : Tout sélectionner   AgrandirRéduire
SI(LIGNE(INDIRECT("A1:A"&NBVAL(_L1;_L2;_L3;_L4)))>NBVAL(_L1;_L2;_L3);INDEX(_L4;LIGNE(INDIRECT("A1:A"&NBVAL(_L1;_L2;_L3;_L4)))-(NBVAL(_L1;_L2;_L3)));SI(LIGNE(INDIRECT("A1:A"&NBVAL(_L1;_L2;_L3)))>NBVAL(_L1;_L2);INDEX(_L3;LIGNE(INDIRECT("A1:A"&NBVAL(_L1;_L2;_L3)))-(NBVAL(_L1;_L2)));SI(LIGNE(INDIRECT("A1:A"&NBVAL(_L1;_L2)))>NBVAL(_L1);INDEX(_L2;LIGNE(INDIRECT("A1:A"&NBVAL(_L1;_L2)))-(NBVAL(_L1)));SI(LIGNE(INDIRECT("A1:A"&NBVAL(_L1)))<=NBVAL(_L1);INDEX(_L1;LIGNE(INDIRECT("A1:A"&NBVAL(_L1))));""))))

L'avantage de cette formule est qu'elle s'adapte automatiquement. Il suffit de nommer les plages _L1, _L2, _L3, _L4 et même si il n'y a que 2 plages nommées, elle fonctionne quand même.

Tu ne la comprendra pas facilement si tu n'es pas habitué avec les formules matricielles. En gros, et il faut faire l'exercice, on génère une plage virtuelle numérotée de 1 à n où n correspond à la quantité de valeur contenues dans les quatre plages :
Valide "matriciellement" (Ctrl+Maj enfoncées lors de l'appui sur la touche Entrée) la formule suivante :
Code : Tout sélectionner   AgrandirRéduire
=LIGNE(INDIRECT("A1:A"&NBVAL(_L1;_L2)))

attention, ton fichier doit contenir deux plages nommées _L1 et _L2 contenant des valeurs. Tu constates que la formule crée une plage numérotée de 1 au nombre total de valeurs contenues dans tes deux listes.
Ensuite avec un SI(), on cherche à savoir si le chiffre généré est supérieur au nombre de valeurs contenues dans la liste 1 _L1. Si oui alors la fonction INDEX() extrait de la liste2 _L2 les valeurs les unes après les autres en commençant par le première :
Code : Tout sélectionner   AgrandirRéduire
INDEX(_L2;LIGNE(INDIRECT("A1:A"&NBVAL(_L1;_L2)))-(NBVAL(_L1)))

et ainsi de suite avec la liste1 _L1.

PS, le premier fichier que j'ai joins n'était pas complet je l'ai remplcé.

A+
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian 10
Ubuntu 18.04.4 LTS
OpenSuse Leap
Avatar de l’utilisateur
OOotremer971
ManitOOu
ManitOOu
 
Message(s) : 2503
Inscrit le : 16 Avr 2010 14:31

Re: liste de choix sur deux zones + valeur associée

Messagepar Arisoy » 14 Juin 2020 19:25

Ok j'ai pas tout compris, mais si jamais j'ai besoin de plus que 4 je repasserais par la :)

En attendant je passe le sujet en résolu car tout fonctionne bien.

Merci encore!
LibreOffice Version 6.1.5.2 sous Debian Buster
Arisoy
NOOuvel adepte
NOOuvel adepte
 
Message(s) : 21
Inscrit le : 01 Juin 2020 19:02


Retour vers Tableur

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 17 invité(s)