'Zon V1  , à adapter
Const PlRang$ = "B3:C6"
Const PlFeuil$ = "E3:E10"
Const PlModif$ = "G3"
Const NomFParam$ = "Parametre"
Const Msg1$ = "Veuillez Vérifier le nom de la feuille parametre et le contenu de ses cellules"
Sub ExeRang()
   Application.Calculation = xlCalculationManual
   MajRang ActiveCell
   Application.Calculation = xlCalculationAutomatic
 
End Sub
Sub MajRang(C As Range) 'Gestion d'erreur à ajouter aprés tests
   Dim T, U, V, Ch, Numlig&
 
   Numlig = C.Row
  ' U = Init(ThisWorkbook.Name, NomFParam, PlFeuil)                     ' à voir pour le traitement de plusieurs feuilles à la fois, boucle sur U
   T = Init(ThisWorkbook.Name, NomFParam, PlRang)                       'recup de colonnes et des rangs
   Ch = T(LBound(T, 1), 1) & Numlig & ":" & T(UBound(T, 1), 1) & Numlig
   V = Init(ThisWorkbook.Name, ActiveSheet.Name, Ch)                      'recup plage K:N nom de la feuille à traiter
   Ch = Init(ThisWorkbook.Name, NomFParam, PlModif)                        'doit retourner 1 seule cellule
   Ch = Left(Ch, 2) & Numlig & ":" & Right(Ch, 2) & Numlig                 'PLage AD : GK avec numéro de ligne
  'Traitement d'une seule plage AD:GK, si plusieurs faire une boucle sur Ch
   TraitementRang T, V, ThisWorkbook.Name, ActiveSheet.Name, Ch, Numlig
 
End Sub
Sub TraitementRang(T, V, C$, ByVal F$, ByVal P$, Numlig&)
'On sert de le colonne 2 de T pour affecter la valeur  cellule qu'on vient de comparer avec V
Dim I&, J&, K&
I = 1
   With Workbooks(C).Sheets(F).Range(P)
      For K = 1 To .Cells.Count
         If .Cells(I, K) <> "" Then
            For J = LBound(V, 2) To UBound(V, 2)
               .Cells(I, K) = IIf(.Cells(I, K) = V(1, J), T(J, 2), .Cells(I, K))
            Next J
         End If
      Next K
   End With
End Sub
Function Init(ByVal C$, ByVal F$, ByVal P$)
  On Error Resume Next
   With Workbooks(C).Sheets(F).Range(P)
      Init = .Cells
   End With
End Function