Liste déroulante dynamique dans des cellules

Bonjour à tous,

Je me présente, Libdedcid (alias Didier ), je suis nouvel inscrit sur ce site que je consulte occasionnellement depuis longtemps déjà.

Pour commencer je tire un grand coup de chapeau à tous les contributeurs qui aident les "jeunes", et offrent leurs connaissances avec beaucoup de modestie et de sympathie ... et de compétence !..

J'y ai toujours trouvé réponse à mes questionnements !!

Ceci dit, voici ma première question pour ma 1ère venue ici :

J'ai écris un programme "carnet de maintenance", alliant Formules et VBA

Dans ce programme, j'utilise des cellules qui, lorsqu'elles sont sélectionnées par l'utilisateur, déclenchent une routine VBA.

Ce bout de code VBA va transformer cette simple cellule en une liste déroulante.

Les éléments de cette liste déroulante sont chargés les uns derrière les autres et sont issus d'informations diverses...

J’appellerai cela disons ... un chargement dynamique !

Pour "charger" les cellules, 'utilise le code VBA en pièce jointe

Le but est que pour chacune des cellules transformées en "liste", les éléments n'étant pas forcément les mêmes .... je voudrais que ceux-ci restent propres à chaque cellule .

Mon soucis est que :

--> Si je charge des éléments de liste dans une 1ère cellule et si je vérifie, ils sont tous bien là, je peux même en sélectionner un et il devient alors la valeur inscrite dans la cellule.

--> Si je charge d'autres éléments de liste dans une autre cellule et si je vérifie, ils tous bien là, je peux là aussi en sélectionner un pour qu'il devienne la valeur de cette nouvelle cellule.

MAIS ...... et c'est là que çà coince, c'est que la liste de la 1ère cellule est devenue maintenant la liste de la seconde cellule.

La valeur inscrite dans la 1ère cellule cependant n'a pas changée !!!...

Si je fais ceci dans 5 cellules consécutives par exemple, alors les listes des 4 cellules précédentes deviennent équivalentes à la 5ème liste.

Bref, mes cellules ne gardent jamais leur propre liste initiale !!!

Si je ferme mon fichier excel, puis que je l'ouvre à nouveau, la dernière liste chargée est restée en mémoire et est appliquée à toutes les autres cellules. Les valeurs contenues dans les cellules elles sont restées en place.

(Je précise que dans mon code VBA j'utilise toujours une variable ( PlageNewList ) qui pointe une zone cachée de ma feuille, zone dans laquelle les noms des éléments sont inscrits avant d'être appliqués à la cellule en cours.

C'est le côté dynamique.....)

Ma question : Existe un moyen pour que chaque cellule garde sa propre liste ?

Je ne veux pas passer classiquement par des listes déjà contenues dans des tableaux figés !!!

Merci à tous de me proposer une solution à ce problème si vous en voyez une ....

NOTA : je suis un utilisateur niveau "moyen" d'Excel et VBA.

Cordialement

Bonjour à tous,

Je me présente, Libdedcid (alias Didier ), je suis nouvel inscrit sur ce site que je consulte occasionnellement depuis longtemps déjà.

Cordialement

Bonjour à tous,

Et tu as eu l'occasion de remarquer qu'en général, un fichier était joint pour illustrer le propos ?

Crdlmt

Bonjour Didier et ... pour ton premier message, en tout cas !

Sans fichier qui illustre ta demande, je ne vois pas bien comment on pourrait t'aider

On peut subodorer que le souci est vraisemblablement lié à:

Je précise que dans mon code VBA j'utilise toujours une variable ( PlageNewList ) qui pointe une zone cachée de ma feuille, zone dans laquelle les noms des éléments sont inscrits avant d'être appliqués à la cellule en cours

... Mais ça restera une hypothèse purement gratuite, à ce stade.

Joins ton classeur après l'avoir "allégé" et en avoir supprimé les infos qui seraient confidentielles, mais avec ton code et quelques mots sur ce que tu cherches à faire (en donnant des exemples)

Salut DjiDji59430

Merci de vos remarques, j'avais bien pensé à vous le joindre effectivement, mais il est très important, ma question ne portant que sur un petit bout de code.

Je vais donc en faire une version allégée pour expliciter mon besoin.

J'ai déjà une idée sur le "pourquoi ça ne marche pas", mais ce que je cherche c'est une solution ... évidemment.

Je reviens bientôt pour poster mon fichier ....

Bonjour Didier et ... pour ton premier message, en tout cas !

Sans fichier qui illustre ta demande, je ne vois pas bien comment on pourrait t'aider

On peut subodorer que le souci est vraisemblablement lié à:

Je précise que dans mon code VBA j'utilise toujours une variable ( PlageNewList ) qui pointe une zone cachée de ma feuille, zone dans laquelle les noms des éléments sont inscrits avant d'être appliqués à la cellule en cours

... Mais ça restera une hypothèse purement gratuite, à ce stade.

Joins ton classeur après l'avoir "allégé" et en avoir supprimé les infos qui seraient confidentielles, mais avec ton code et quelques mots sur ce que tu cherches à faire (en donnant des exemples)

Salut DjiDji59430

Voici en pièce jointe une version "Light" de mon fichier.

Les explications fonctionnelles sont inscrite dans le code VBA en commentaires.

Merci d'avance à tous ....

Bonjour,

Ton code ne saurait pas fonctionner, puisque les validations en colonne E trouvent leur source dans ta "PlageNewList" ... dont le contenu change à chaque fois

Dans la pièce jointe, un essai différent à tester: au changement de valeur en colonne D, la source des validations de la colonne E sont modifiées (avec, comme source, des valeurs sous forme de chaîne).

Je ne suis pas allé plus loin ... tu verras si ça fonctionne et si tu peux continuer seul, pour les colonnes E et F

J'ai "fait le ménage" sous la ligne 14 et au-delà de la colonne AG, ainsi que dans les autres feuilles, pour alléger le fichier

Bonjour U. Milité

Merci pour ta réactivité, et merci pour la modification de mon code.

Je dirai même plus, c'est quasiment un total remplacement.

Et en + ... c'est extrêmement rapide d'exécution !!!!!

Une grande partie de mes fonctions de la BdD ne servent donc plus à rien. Je vais y faire du nettoyage... (encore un gain de temps d’exécution)

C'est du very "Light"

Simple et efficace, cela fonctionne parfaitement. ( je n'ai pas tout compris encore, mais je vais l'étudier de façon + approfondie )...

Facile à faire évoluer pour qu'il fonctionne sur toutes mes colonnes concernées, (ce que j'ai fait tout de suite), je te suis très reconnaissant.

J'ai juste un contrôle de valeur à ajouter car, si jamais une cellule de la base de données est vide ça me déclenche une erreur dans ce cas-là.

Je clos ce post !

Merci encore et bonne continuation

Didier

Rechercher des sujets similaires à "liste deroulante dynamique"