[EXCEL] Mise à jour d'une liste de validation

Résolu/Fermé
Jean-Paul - Modifié par Jean-Paul le 12/11/2010 à 18:51
 fghfghj130 - 16 août 2012 à 10:33
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
A voir également:

4 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 13/11/2010 à 17:37
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 beaucoup je pense que ça va résoudre mon problème
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
12 nov. 2010 à 19:04
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é.
0
Ouais je serais bien intéressé par ce procédé ou alors une solution annexe pour faire la même chose. Merci
0
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.
0
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...
-2
J'ai pas tout compris
0
Utilisateur anonyme
12 nov. 2010 à 20:25
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.
0
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
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
13 nov. 2010 à 16:56
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
0