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

Résolu
Jean-Paul -  
 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
A voir également:

4 réponses

michel_m Messages postés 18903 Statut Contributeur 3 318
 
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
Jean-Paul
 
Merci beaucoup je pense que ça va résoudre mon problème
0
gbinforme Messages postés 15478 Statut Contributeur 4 727
 
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
Jean-Paul
 
Ouais je serais bien intéressé par ce procédé ou alors une solution annexe pour faire la même chose. Merci
0
fghfghj130
 
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
Utilisateur anonyme
 
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
Jean-Paul
 
J'ai pas tout compris
0
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.
0
Jean-Paul
 
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 27336 Statut Contributeur 6 441
 
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