[EXCEL] Mise à jour d'une liste de validation [Résolu/Fermé]

Signaler
-
 fghfghj130 -
Bonjour,

J'utilise une liste de validation sous Excel. J'aimerais que lorsque je modifie une valeur source de cette liste de validation, toutes les cellules qui y font référence via une liste déroulante soient mise à jour automatiquement.

Exemple:
A1=Nom1
A2=Nom2
A3=Nom3

C1 contient une liste déroulante faisant référence à la plage A1:A3.
Je sélectionne la valeur Nom2 dans la cellule C1.
Je modifie la valeur de la cellule A2. La valeur de C1 n'est pas mise à jour automatiquement. J'aimerais que ca soit le cas.

Merci

4 réponses

Messages postés
16318
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
2 décembre 2020
3 083
Bonjour

En l'absence de Gbinforme, je me risque

Private Sub Worksheet_Change(ByVal Target As Range) 
Dim zone As Range 
Set zone = Range("A1:A3") 
If Not Intersect(Target, zone) Is Nothing Then 
    If Application.CountIf(zone, Range("C1")) = 0 Then 
        Range("C1") = Target 
    End If 
End If 
End Sub


macro événementielle à installer le module feuille concerné

méthode pour installer
copier cette macro 
clic droit sur le nom de l'onglet de la feuille concernée (en bas de l'écran) 
visualiser le code 
coller 
si tu n'as jamais utilisé de macros, cocher menu  options-macros-sécurité- niveau moyen


Michel
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 76687 internautes nous ont dit merci ce mois-ci

Merci beaucoup je pense que ça va résoudre mon problème
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 255
bonjour

En fonctionnement standard, ce n'est pas prévu car la liste de validation ne sert qu'à faire le choix pour documenter la saisie de ta zone.

Tu peux le faire avec une macro qui modifie automatiquement les cellules utilisatrices concernées : à toi de nous dire si tu es intéressé par ce procédé.
Ouais je serais bien intéressé par ce procédé ou alors une solution annexe pour faire la même chose. Merci
Bonjour,

Le sujet est un peu veillot, mais je tente ma chance quand même.... La macro fonctionne très bien, la cellule qui résulte du choix de la liste se modifie automatiquement lorsque l'on modifie le critère directement dans la plage sur laquelle est basée la liste..... à la main.
ex:
plage A:A : résultat de 1
résultat de 2
résultat de 3

Cellule F1 : résultat de 2 (que je choisit dans ma liste)

Si je change à la main "résultat de 2" par "résultat de 234", le choix fait en F1 se modifie automatiquement.

J'ai une liste de choix qui est, elle, basée sur le résultat d'une formule, la formule modifie bien ma valeur dans la liste, mais la cellule reste inchangée.
ex:
plage A:A : =si(D1>E1;B1;si(D1<E1;C1;"résultat de 1"))
=si(D1>E1;B1;si(D1<E1;C1;"résultat de 2"))
=si(D1>E1;B1;si(D1<E1;C1;"résultat de 3"))

Cellule F1 : résultat de 2 (que je choisit dans ma liste)

Là, lorsque la formule change le résultat dans la plage A:A, la sélection en F1 ne change pas...

Y a t il une solution, ou au moins une explication ?

Merci à vous.
Bonsoir,
Confronté (plutot mon Papy) à ce problème voici le traitement apporté :
"la fin justifie les moyens"...
Le probléme est de modifier la liste qui sert à quelque chose....qui peut-être une liste aussi.
Ainsi dans les listes initiales il y avait des formules de mise à jour (recherchev...) sur d'autres données. Du coup ma liste (celle de travail) était toujours à jour...
Si cela vous sert...
J'ai pas tout compris
Utilisateur anonyme
Faites la même liste que celle que vous utilisez mais les valeurs à l'interieur sont le résultat de formules. Qaund vous utilisez cette liste la formule l'aura mise à jour.
C'est bien ce que vous voulez, mettre à jour une liste.
Le problème n'est pas la mise à jour de la liste. En effet lorsque une valeur évolue dans la liste, la liste déroulante prend bien en compte cette nouvelle valeur. En revanche, les valeurs déjà sélectionnées depuis la liste ne sont pas mises à jour.

Exemple: ma liste de valeur contient "A","B","C". Je sélectionne la valeur "B" depuis la liste déroulante. Ensuite je change depuis la liste source "B" en "B2". La valeur précédemment sélectionnée "B" ne se transforme pas automatiquement en "B2". En revanche si je clique sur la liste déroulante, les choix proposés sont "A","B2","C". Etant donné que j'ai de nombreuses listes déroulantes, je ne veux pas les ouvrir une par une pour choisir la valeur mise à jour à chaque modification de la liste origine.

Merci de votre aide
Messages postés
25652
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
2 décembre 2020
5 642
bonsoir
ce qui semble le plus simple, c'est,lorsque vous modifier votre liste, d'utiliser la fonction remplacer pour mettre le nouveau code à la place de l'ancien dans les édition antérieures,non?
crdlmnt