Sub Macro1()
Dim n As Object 'déclare la variable n (onglet Neg)
Dim e As Object 'déclare la variable e (onglet Exp)
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim pl As Range 'déclare la variable pl (PLage)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim dest As Range 'décalre la variable dest (cellule de DESTination)
Dim r As Range 'déclare la varialbe r (Recherche)
Set n = Sheets("NEG") 'définit l'onglet n
Set e = Sheets("EXP") 'définit l'onglet e
dl = e.Cells(Application.Rows.Count, 2).End(xlUp).Row 'définit la dernière ligne éditée dl de la colonne 2 (=B) de l'onglet e
Set pl = e.Range("B2:B" & dl) 'définit la plage pl de l'onglet e
For Each cel In pl 'boucle sur toutes les cellules cel de la plage pl
Set dest = Nothing 'réinitialise la variable dest
'définit la recherche r (recherche la valeur exacte de la cellule cel dans la colonne 1 (=A) de l'onglet n
Set r = n.Columns(1).Find(cel.Value, , xlValues, xlWhole)
If Not r Is Nothing Then 'condition : si il existe au moins une occurrence trouvée
Select Case r.Offset(0, 5).Value 'agit en fonction de la valeur de l'occurrence trouvé décalée de 5 colonnes (en colonne F)
Case "V" 'cas "V"
Set dest = cel.Offset(0, 4) 'définit la cellule de destination, décalée de 4 colonne par rapport à cel (colonne F)
Case "X", "" 'cas "X" ou vide
Set dest = cel.Offset(0, 3) 'définit la cellule de destination, décalée de 3 colonne par rapport à cel (colonne E)
End Select 'fin de l'action en fonction de...
r.Offset(0, 1).Copy dest 'copie la cellule adjacente à l'occurrence trouvé (colonne B) dans la cellule de destination dest
End If 'fin de la condition
Next cel 'prochaine cellule de la boucle
End Sub