XL 2010 Création de listes déroulantes interactive

  • Initiateur de la discussion Initiateur de la discussion jeanmi
  • 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 !

jeanmi

XLDnaute Occasionnel
J’ai un onglet « liste articles »

Dans lequel, j’ai 3 colonnes, A, B et C avec des références, des désignations, en C des familles. Les plages A2 :C36 sont nommées « table articles », peut-être pas utile ?

J’ai dans l’onglet « Bon de Cde »

En colonne A, de A27 : A57 des références qui s’afficheront en fonction du choix sélectionné au niveau de désignation (colonne C) et qui ne s’affiche que s’il y a une quantité dans la colonne D, ça fonctionne.

J’ai en colonne B des familles de produit, à partir d’une liste déroulante.

Ce que je voudrais faire, si possible :

Actuellement la liste déroulante qui est affichée au niveau de désignation, en colonne C, prend en compte toutes les données qui sont définies dans l’onglet « liste articles »

Es qu’il est possible que la liste déroulante qui est au niveau de désignation, colonne C, n’affiche que les désignations qui correspondent à la famille sélectionnée au niveau de famille, colonne B ?

J’ai fait beaucoup d’essais, sans arrivé à trouver une solution.

On me dit peut-être tableau croisé dynamique, mais là je ne maitrise pas ni dans le cas d’une solution VBA.

Il faut que je puisse, simplement, par la suite ajouter des informations complémentaires à l’onglet liste articles. Peut-être que la construction de mon fichier n'est pas la bonne ?

Si joins mon fichier d’essai.

Merci pour votre aide.

Cordialement
 

Pièces jointes

es que je peux ajouter des données au niveau de kla liste des articles ?
Pour obtenir une mise à jour de la liste de validation Liste il faut ajouter cette macro dans la feuille "Bon de Cde" :
VB:
Private Sub Worksheet_Activate()
Worksheet_SelectionChange ActiveCell 'lance la macro quand on revient sur cette feuille
End Sub
 

Pièces jointes

Bonsoir :

aprés avoir cherché.

Procédure : Créer une liste déroulante dynamique pour Famille et Désignation
- Classeur Excel : 2 Onglets (Bon_de_Cde) et (Liste_aricles) / Pas d'espaces dans les noms d'onglets !

Créer la liste Famille sans doublons
- Procédure pour créer une liste Famille sans doublons Famille en Colonne E.
* Copier la colonne C:C de Feuille liste_articles
* Coller la colonne copier en E1
* Selection de la colonne E:E
* Données / Supprimer les doublons / OK
* Résultat : toutes les familles uniques sont listées en E sans doublons

Suite :
Céer une liste Famille dynamique depuis le Gestionnaire de noms : Avec DECALER + NBVAL
* Formules / Gestionnaire de Noms / Nouveau
° Nom : Famille
° Zone : Classeur
° Formule : =DECALER(Liste_articles!$E$2;;;NBVAL(Liste_articles!$E:$E)-1)
° Fermer la boite de dialogue --->> la liste Famille devient dynamique (s’adapte si on ajoute des familles)

Suite :
Créer la Validation de donnée sur la feuille : Pour Famille
* Bon de commande en Cellule B27
° Donner / Validation des données
° Options
- Autoriser : Liste
- Sources : =Famille
- Ok
- Résultat : la liste déroulante propose toutes les familles uniques et dynamiques

Suite :
Créer la Validation de donnée sur la feuille : Pour Désignation en fonction de la Famille
* Bon de commande en Cellule C27
° Donner / Validation des données
° Options
- Autoriser : Liste
- Sources : =DECALER(Liste_articles!$B$2:$B$360;EQUIV(B27;Liste_articles!$C$2:$C$360;0)-1;0;NB.SI(Liste_articles!$C$2:$C$360;B27))
- Ok

' Maintenant Cela est fonctionnel :

Explication des fonctions :
* Formule : =DECALER(Liste_articles!$E$2;;;NBVAL(Liste_articles!$E:$E)-1)
° DECALER signifie “déplacer et créer une plage”.
° Cellule_de_départ → point de départ de la plage -->> (ici $E$2)
° Lignes → combien de lignes tu veux descendre depuis le départ -->> (ici vide = 0)
° Colonnes → combien de colonnes à droite ou à gauche -->> (ici vide = 0)
° Hauteur → nombre de lignes dans la plage finale -->> (Ici NBVAL(Liste_articles!$E:$E)-1)
* NBVAL(E:E) → compte toutes les cellules non vides de la colonne E de la plage de l'onglet (Liste_articles)
* -1 → on enlève la cellule d’en-tête (E1) pour ne pas l’inclure dans la liste
* Résultat : la plage va automatiquement s’étendre ou se réduire si on ajoute ou supprime des Familles.
° Largeur → nombre de colonnes dans la plage finale -->> (ici par défaut 1)
et
* =DECALER(Liste_articles!$B$2:$B$360;EQUIV(B27;Liste_articles!$C$2:$C$360;0)-1;0;NB.SI(Liste_articles!$C$2:$C$360;B27))
° DECALER signifie “déplacer et créer une plage”.
° Cellule_de_départ → point de départ de la plage -->> (ici Liste_articles!$B$2:$B$360) / 360 Cellules étendre si besoins
° Lignes → combien de lignes tu veux descendre depuis le départ -->> (ici ici EQUIV(B27;Liste_articles!$C$2:$C$360;0)-1)
* EQUIV(B27;Liste_articles!$C$2:$C$360;0) → trouve la première ligne où apparaît la Famille choisie en B27 dans la colonne C
* -1 → ajuste la position pour que DECALER commence exactement au bon endroit
° Colonnes → combien de colonnes à droite ou à gauche -->> (ici vide = 0)
° Hauteur → nombre de lignes dans la plage finale -->> (Ici NB.SI(Liste_articles!$C$2:$C$360;B27))
* NB.SI(Liste_articles!$C$2:$C$360;B27) → compte combien de lignes correspondent à la Famille choisie
* Résultat → la plage contient toutes les Désignations de cette Famille et s’adapte automatiquement si on ajoute ou supprime des lignes dans la colonne C
° Largeur → nombre de colonnes dans la plage finale -->> (ici par défaut 1)
 
re,
Explications dans le fichier.
Cordialement

re,
Explications dans le fichier.
Cordialement
pourquoi dans le fonction qui est au niveau des menue déroulant
VB:
=DECALER('liste articles'!$C$2;EQUIV(B27;_Famille;0);;NB.SI(_Famille;B27))
ce n'est pas l_Famille mais _Famille, juste pour comprendre ?

Merci
 
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

Discussions similaires

Retour