Private test As Boolean 'déclare la variable test
Private Sub Worksheet_Change(ByVal Target As Range) 'au changement dans l'onglet
Dim cs As Workbook 'déclare la variable cs (Classeur Source)
Dim os As Object 'déclare la variable os (Onglet Source)
Dim r As Range 'déclare la variable r (Recherche)
If test = True Then Exit Sub 'si test est vrsie. sort de la procédure
If Target.Column <> 1 Then Exit Sub 'si le changement a lieu ailleurs que dans la colonne A, sort de la procédure
If Target = "" Then Exit Sub 'si la cellule est effacée, sort de la procédure
test = True 'définit la variable test
Set cs = Workbooks("CodeRac.xlsx") 'définit le classeur source
Set os = cs.Sheets("Feuil1") 'définit l'onglet source
'définit la recherche (recherche la valeur de la cellule éditée dans la colonne A de l'onglet source)
Set r = os.Columns(1).Find(Target.Value, , xlValues, xlWhole)
'si il existe au moins une occurrence, remplace la valeur de la cellule par la valeur de la cellule en colonne B de l'occurrence
If Not r Is Nothing Then Target.Value = r.Offset(0, 1).Value
test = False 'réinitialise la variable test
End Sub