Mettre à jour les valeurs d'une Data Validation si la liste source est modifiée

bouclesdor

XLDnaute Occasionnel
Bonjour à tous,

Je vais appel à vous ce matin car j'ai fouillé sur le net pour trouver un code VBA qui me permettra de mettre à jour automatiquement les valeurs d'une data validation car ma liste source sera appelé à être modifié régulièrement et je veux que les changements ce reflete dans ma feuille "projet" qui est ma feuille contenant les données. Ma liste est dans la feuille "regroupement".

Voici le code que j'ai trouvé qui semblait bien fonctionner jusqu'à ce que je fasse des tests et me rendre compte d'un bug.

Option Explicit
' Developed by Contextures Inc.
' Contextures Excel Tips, Excel Tutorials and Excel Examples
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo errHandler

Dim rng As Range
Dim strOld As String
Dim strNew As String
Dim wsData As Worksheet
Dim wsLists As Worksheet

Set wsLists = Sheets("Regroupement") ' feuille qui contient la liste
Set wsData = Sheets("Projet") 'feuille nommé projet celle qui contient les datavalidations
Set rng = wsLists.Range("liste") 'nom de la plage de liste

If Target.Count > 1 Then GoTo exitHandler

If Intersect(Target, rng) Is Nothing Then
'do nothing
Else
Application.EnableEvents = False
strNew = Target.Value
Application.Undo
strOld = Target.Value
Target.Value = strNew

If strOld <> "" Then
' G est la colonne avec la datavalidation sur la feiulle projet
wsData.Columns("g:g").Replace What:=strOld, _
Replacement:=strNew, LookAt:=xlPart, _
SearchOrder:=xlByRows
End If
Application.EnableEvents = True
End If

exitHandler:
Application.EnableEvents = True
Exit Sub

errHandler:
MsgBox "Change could not be completed"
GoTo exitHandler
End Sub


Le bug est que lorsque je remplace le mot en B4 (qui était fraise) par la lettre "E" tout simplement et lorsque j'ai remodifié la case en remplacant le "E" par "coucou" ça changé tous les "E" dans tout les mots. Je voulais que ça change seulement les cellules qui contenait le E pas les E de tous les mots... Pouvez-vous me dire quoi changer dans mon code...

PS je vais joindre la pièce jointe dans 2 minutes... j'arrive pas à la joindre pour le moment et je ne veux pas perdre mon message...

Merci à l'avance!

Bouclesdor
 

thombzh

XLDnaute Junior
Re : Mettre à jour les valeurs d'une Data Validation si la liste source est modifiée

Merci, c'est exactement ça :)

Je ne vois rien de différent dans la macro, comment dois je procéder si à l'avenir pour x raison je souhaite modifier quelque peu les formules en A:A pour d'autres fichier

J'aimerai juste comprendre le principe, étant débutant, ce n'est pas évident du tout.
 

Discussions similaires

Statistiques des forums

Discussions
311 733
Messages
2 082 015
Membres
101 868
dernier inscrit
pierreselo33