Avec plaisir !
Tu peux rajouter un End pour fermer le programme dans les deux premiers cas après la msgbox:
If StrPtr(num_aff) = 0 Then
MsgBox "Vous avez annulé"
End
ElseIf num_aff = "" Then
MsgBox "Vous n'avez rien saisi"
End
Else
Range("B1").Select
Selection.Cut Destination:=Range("C1")
Range("D1").Select
ActiveCell.FormulaR1C1 = "=RC[-1]-'" & chemin & "\" & num_aff & "\[" & resultat & "]Feuil1'!R1C2"
Range("D1").Select
Selection.Copy
Range("B1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("C1:D1").Select
Range("D1").Activate
Application.CutCopyMode = False
Selection.ClearContents
Range("E3").Select
End If