XL 2016 Mettre à jour les listes déroulantes

Gotcha26

XLDnaute Nouveau
Bien le bonjour,

Je commence par préciser que j'ai un minimum cherché (en vain) une solution à ce petit problème qui semble assez simple.

Soit, une liste déroulante créée via la validation des données et cette liste est correctement étiqueté pour garantir la meilleure flexibilité.
Le hic c'est que si je sélectionne une valeur via cette "Validation des données", lors de la mise à jour de la liste (par exemple suite à faute de frappe etc) le changement ne se répercute pas su mon ancien choix.
En gros, je cherche un procédé afin de mettre à jour les cellules déjà saisies via une liste déroulante, pour que le contenu reflète exactement ce qui se trouve dans la liste déroulante.
 
Solution
Bonjour @Gotcha26 , le Forum

A ma connaissance une fois le choix fait dans une liste de validation, ce que l'on peut changer dans la liste qui a servi de source ne sera jamais répercuté dans la cellule cible. La liste de validation n'intervient QUE lors d'un changement de la cellule cible.

A mon humble avis, à ce niveau là seule une solution 100% VBA pourrait éventuellement répondre à ce besoin, mais quand même avec certaines limites car sans clef d'index ou sans code, il sera toujours très compliqué de remplacer un mot par un autre arbitrairement ...
Il faut probablement une liste temporaire avec deux colonnes "Old Value" et "New Value"....

Bon dimanche
@+Thierry

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour @Gotcha26 , le Forum

A ma connaissance une fois le choix fait dans une liste de validation, ce que l'on peut changer dans la liste qui a servi de source ne sera jamais répercuté dans la cellule cible. La liste de validation n'intervient QUE lors d'un changement de la cellule cible.

A mon humble avis, à ce niveau là seule une solution 100% VBA pourrait éventuellement répondre à ce besoin, mais quand même avec certaines limites car sans clef d'index ou sans code, il sera toujours très compliqué de remplacer un mot par un autre arbitrairement ...
Il faut probablement une liste temporaire avec deux colonnes "Old Value" et "New Value"....

Bon dimanche
@+Thierry
 

Gotcha26

XLDnaute Nouveau
Bonjour @_Thierry ,

Ouf, quelqu'un à compris mon charabia nocturne ^^
Tu as parfaitement compris mon besoin et en effet j'en arrive à la même conclusion que toi à savoir passer par une clé d'index unique, ajout d'une colonne de "contrôle/vérification" et maintenant me reste le plus dure : coder en VBA une fonction qui ferait tout ce travail de "mise à jour" sur les valeurs qui auront été modifiés.

Je reviendrais très certainement içi avec un petit fichier d'exemple car le VBA et moi... :confused:

Merci à toi et bon dimanche.
 

Gotcha26

XLDnaute Nouveau
Bon,

Bah finalement le VBA est superflus mais j'ai quand même réussi à ajouter du code pour une intégration totalement automatique via une macro.

Au bilan je travaille bien avec :
- Des fichiers externes pour la constitution de mes BDD à importer
- Les listes (BDD) sont identifiées par des clés ID uniques
- Une macro complémentaire pour la fonction RECHERCHE_X
- Un peu de mise en forme conditionnelle pour le style ^^
- Une macro pour automatiser à la mise à jour de la liste sans avoir à le faire ligne par ligne

Au résultat, sur mon petit fichier qui me sert de test, j'obtiens exactement ce que je voulais !

L'astuce consiste en effet à concaténer l'ID dans le nom des items et à travailler sur cette base. Cela implique quelques colonnes supplémentaire pour le formatage/vérification/comparaison mais ça vaut carrément le coup de pouvoir identifier des éléments qui ont été mis à jour dans une liste déroulante déjà utilisée !!!

Ci-joint mon petit fichier pour l'exemple qui sera certainement plus explicite que ma bafouille :p
=> Amusez-vous par exemple à modifier le contenu de la colonne B sur l'onglet "BDD_Contenants" et observez le résultat sur le premier onglet.

[Résolu]
 

Pièces jointes

  • Liaison.xlsm
    34.9 KB · Affichages: 34

Discussions similaires

Statistiques des forums

Discussions
315 096
Messages
2 116 183
Membres
112 677
dernier inscrit
Justine11