Création liste modifiable en fonction de 2 paramètres

  • Initiateur de la discussion Initiateur de la discussion manorun
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

manorun

Guest
Bonjour,

Je manque de compétences pour arriver à faire ce que je voudrais, est-ce que quelqu'un pourrait m'aider svp. J'ai joins un fichier dans lequel j'ai expliqué ce que je souhaiterai faire.

Je souhaiterai créer une liste qui afficherai un choix en fonction d'un choix fait dans une autre liste modifiable et de données rentrées manuellement dans deux cellules.

Merci par avance pour le partage de vos connaissances.
 

Pièces jointes

Re : Création liste modifiable en fonction de 2 paramètres

Oui j'ai déjà consulté ce site, et j'ai vu comment se fait les listes en cascade, mais ce que je souhaite est légèrement différent puisque cela ne dépend pas uniquement d'autres listes. De plus je n'ai pas de grandes connaissance dans les formules qui deviennent complexes.
 
Re : Création liste modifiable en fonction de 2 paramètres

re 🙂

bon, je te prépare un petit brouillon avec quelques commentaires sur la base de ton fichier, j'espère que cela pourra t'aider, à tout à l'heure 🙂

mth
 
Re : Création liste modifiable en fonction de 2 paramètres

Bonjour,

Voir PJ

=DECALER(TypeApp;EQUIV(E3;TypePan;0)-1+EQUIV(D13;DECALER(NbPan;EQUIV(E3;TypePan;0)-1😉;0)-1;0;SOMMEPROD((TypePan=E3)*(NbPan=D13)))

Noms de champ
NbPan =Feuil1!$C$17:$C$30
TypeApp =Feuil1!$D$17:$D$30
TypePan =Feuil1!$B$17:$B$30



JB
Formation Excel VBA JB
 

Pièces jointes

Dernière édition:
Re : Création liste modifiable en fonction de 2 paramètres

Un grand merci.
J'ai vu que ca fonctionne, je vais décortiquer tout ça... et dire que ca fait 3 jours que je galère et en 30 min vous m'apporter la solution!!
 
Re : Création liste modifiable en fonction de 2 paramètres

🙂
Me revoilà avec un métro de retard, mais comme j’étais lancée, voilà ci dessous les quelques commentaires autour des fonctions que j’ai utilisées dans le fichier joint. Mêmes fonctions et même idée que J Boisgontier, mais il va sans dire, en beaucoup moins bien évidemment!


Fonction Decaler:
Formule théorique: DECALER( Réf; Nombre de lignes; Nombre de colonnes; Hauteur; Largeur)

soit dans notre exemple: DECALER=DECALER($A$16;EQUIV($F$3;$A$16:$A$50;0)-1+(EQUIV($D$13*$D$14;$B$16:$B$50;0)-2);4;SOMMEPROD(($A$16:$A$50=$F$3)*(($D$13*$D$14)=$B$16:$B$50))😉

Réf: Cellule de départ à partir de laquelle le décalage doit être opéré. Ici, nous partons de la cellule $A$16 de l'onglet Feuil1

Nbre de lignes :
Nombre de lignes de décalage vers le haut (chiffre négatif) ou vers le bas (chiffre positif) .
Concrètement ici nous cherchons la première ligne qui correspond au libellé contenu dans la cellule E3. Pour « Biosol 190 P6+ Intégré » il s’agira de la 8ème ligne à partir de A16, et pour calculer ce 8 nous utilisons la fonction Equiv() décrite ci dessous.
Pour le second critère, une fois que nous sommes sur cette 8ème ligne, il faut calculer un décalage ou pas vers le bas pour trouver la première valeur égale à D13*D14.
C’est encore la fonction Equiv ci dessous qui va nous y aider, ainsi pour « Biosol 190 P6+ Intégré » de 15 panneaux, nous devons encore nous décaler de 4

Nombre de colonnes.
Même raisonnement que pour les lignes, ici nous nous décalons de 4 vers la droite pour aller chercher les valeurs en colonne E

Hauteur: Indique la hauteur de la plage, en nombre de lignes (elle doit être impérativement supérieure à 0)
Dans notre exemple la hauteur de la zone correspond au nombre de valeurs entre A16 et A20 qui sont égales à la cellule E3 (puisque le tableau est trié) ET dont le nombre de panneaux correspond à la multiplication D13*D14.
Ici il y a 7 types d’appareils correspondant à « Biosol 190 P6+ Intégré », dont 3 de 15 panneaux, cette valeur 3 est calculée à l’aide de la fonction sommeprod() décrite si dessous

Largeur: Indique la largeur de la plage, en nombre de colonnes (la largeur doit également être supérieure à 0).
Même chose que pour la hauteur, ici la largeur est de 1 pour indiquer qu’il n’y a qu’une seule colonne. Quand cette valeur n’est pas renseignée (ici rien après le point virgule) la valeur par défaut est 1.

Concrètement pour « Biosol 190 P6+ Intégré » et « 15 panneaux », la fonction DECALER($A$16;EQUIV($F$3;$A$16:$A$50;0)-1+(EQUIV($D$13*$D$14;$B$16:$B$50;0)-2);4;SOMMEPROD((A16:A50=F3)*((D13*D14)=B16:B50))😉

va donner ici DECALER($A$16;12;3;3😉 soit partir de A16, descendre de 12 lignes, se décaler de 3 colonnes, à ce stade nous sommes en cellule E28 ; puis prendre en compte une plage de hauteur 3 largeur 1, soit les valeurs contenues entre E28 et E30


Pour la fonction Equiv:
Cette fonction permet de trouver la position de l'élément recherché

Formule théorique : Equiv(valeur_cherchée;matrice de recherche;type)

soit dans notre exemple :=EQUIV($F$3;$A$16:$A$50;0)

Valeur cherchée: Nous cherchons la valeur de la cellule F3

Matrice de recherche: Nous cherchons cette valeur dans les cellules $A$16 à $A$50

Type: Dans notre exemple l'argument est 0 pour dire que nous cherchons la valeur exacte.
Les arguments peuvent être:
1 pour chercher la valeur la plus élevée inférieure ou égale à la valeur cherchée,
-1 pour chercher la plus petite valeur supérieure ou égale à la valeur cherchée,
si l'argument n'est pas renseigné, la valeur par défaut est 1
Dans ces derniers cas, il faut que la matrice soit triée sans quoi le résultat risque d'être faux.

Dans notre exemple, la valeur renvoyée par cette fonction est 9 (partant de A16) et il convient de retirer 1 pour tenir compte de la 1ère ligne qui est vide
La deuxième fonction Equiv() fait la même chose : (EQUIV($D$13*$D$14;$B$16:$B$50;0)-2 : elle cherche l’équivalent le D13*D14 (par exemple 3*5 soit 15), dans les cellules B16 à B50.
Attention : cette formule ici n’est adaptée qu’à notre exemple, et uniquement parce que le nombre de lignes est identique entre les deux produits Biosol 180 et Biosol 190, s’il n’y avait pas 7 lignes dont 4 pour 16 panneaux et 3 pour 15 panneaux dans les deux cas, il faudrait calculer le décalage autrement.
C’est une des raisons pour lesquelles il faut naturellement préférer la formule proposée par JBoisgontier, car elle permet de tenir compte d’un décalage variable alors que celle que j’ai déposée dans le fichier joint est figée.

Fonction Sommeprod:
Cette fonction va permettre de calculer un nombre de valeurs correspondant à 2 critères.
Formule théorique : sommeprod(matrice1;matrice2 ; …)

soit dans notre exemple :=SOMMEPROD(($A$16:$A$50=$F$3)*(($D$13*$D$14)=$B$16:$B$50))
Cette fonction va compter le nombre de cellules entre A16 et A50 qui ont la même valeur que la cellule F3, et pour lesquelles les cellules de B16 à B50 ont la même valeur que le résultat de la multiplication de D13 par D14
Remarque : la taille de la matrice doit toujours être la même, ici de la ligne 16 à la ligne 50.

Pour« Biosol 190 P6+ Intégré » ET 15 panneaux la fonction renvoie 3


Ouf !
Beaucoup de bavardage mais comme tu nous disais que tu n’étais pas à l’aise avec les formules compliquées ; entre nous celle-ci l’est un peu … et j’ai essayé de te décortiquer les formules utilisées dans ton fichier en espérant que cela pourra t’aider non seulement pour ce cas là mais également pour tes futurs fichiers 🙂

Bon courage pour ton travail et à une prochaine fois,

Sans oublier bien sûr de saluer avec grand plaisir J Boisgontier

mth

PS: je mets le fichier en pj, mais plus pour illustrer mes commentaires qu'autre chose
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
339
Retour