Bonjour le fil, bonjour le forum,
C'est cool on travaille pour Huogas qui ne daigne même pas se manifester !...
Je voyais plutôt les chose comme ça... J'ai utilisé une boîte d'entrée (InputBox) pour définir la plage de validation de données mais si elle est fixe on peut l'inscrire en dur dans le code.
Dans A6, remplace Frèse par Fraise. Il sera demandé de sélectionner la plage de validation de données (faire glisser le curseur de F2 à F30 puis en appuyant sur la touche [Ctrl], de H2 à H10) puis valide avec OK.
D'une part la liste de validation de données est actualisée mais aussi toutes les cellules contenant l'ancienne valeur sont remplacées par la nouvelle.
Les deux événementielles :
Private TS As ListObject 'déclare la variable TS (Tableau Structuré)
Private AV As String 'déclare la variable AV (Ancienne Valeur)
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'au changement de sélection dans l'onglet
Set TS = Me.ListObjects("Tableau1") 'définit la tableau structuré TS
'si la sélection se fait ailleurs que dans les données du tableau structuré, sort de la procédure
If Application.Intersect(Target, TS.DataBodyRange) Is Nothing Then Exit Sub
AV = Target.Value 'définit l'ancienne valeur AV
End Sub
Private Sub Worksheet_Change(ByVal Target As Range) 'au changement dans l'onglet
Dim BE As Range 'déclare la variable BE (Boîte d'Entrée)
Dim CEL As Range 'déclare la variable CEL (CELlule)
Dim NV As String 'déclare la variable NV (Nouvelle Valeur)
Set TS = Me.ListObjects("Tableau1") 'définit la tableau structuré TS
'si le changement se fait ailleurs que dans les données du tableau structuré, sort de la procédure
If Application.Intersect(Target, TS.DataBodyRange) Is Nothing Then Exit Sub
NV = Target.Value 'définit la nouvelle valeur NV
On Error GoTo fin 'gestion des erreurs (si bouton [Annuler] de BE, va à l'étiquette "fin")
'définit la boîte d'entrée BE
Set BE = Application.InputBox("Sélectionner la plage de validation de données en faisant glisser le curseur.", "PLAGE", Type:=8)
Application.EnableEvents = False 'annule l'exécution des événementielles
For Each CEL In BE 'boucle sur toutes les cellule CEl de BE
If CEL.Value = AV Then CEL.Value = NV 'si la cellule vaut l'ancienne valeur AV elle est remplacée par la nouvelle valeur NV
Next CEL 'prochaine cellule de la plage
Application.EnableEvents = True 'autorise l'exécution des événementielles
fin: 'étiquette
End Sub
Le fichier (que l'on attendait de la part de Huogas...)