Sub Macro3()
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim TEST As Boolean 'déclare la variable TEST
Dim I As Integer 'déclare la variable I (Incrément)
Dim J As Integer 'déclare la variable J (incrément)
Dim K As Integer 'déclare la variable K (incrément)
Dim TL() As Variant 'déclare la variable TL (Tableau des Lignes)
Columns(6).ClearContents 'efface le contenu de la colonne 6 (= colonne F)
TV = Range("D3").CurrentRegion 'définit le tableau de valeur TV
K = 1 'initialise la variable K
For I = 1 To UBound(TV, 1) 'boucle 1 : sur toutes les lignes I du tableau des valeurs TV
TEST = False 'réinitialise la variable TEST
For J = 1 To UBound(TV, 1) 'boucle 2 : sur toutes les lignes J du tableau des valeurs TV
'si les deux valeurs sont identiques, définti la variable TEST, sort de la boucle 2
If TV(I, 1) = TV(J, 2) Then TEST = True: Exit For
Next J 'prochaine ligne J de la boucle 2
If TEST = False Then 'si TEST est [faux]
ReDim Preserve TL(1 To K) 'redimensionne le tableau des lignes (K lignes)
TL(K) = TV(I, 1) 'récupère dans la ligne K de TL le prénom de la ligne I de TV
K = K + 1 'incrémente K (ajoute une ligne au tableau des lignes
End If 'fin de la condition
Next I 'prochaine ligne I de la boucle 1
'si K est supérieure à 1 renvoie dans F3 le tableau TL transposé
If K > 1 Then Range("F3").Resize(UBound(TL), 1).Value = Application.Transpose(TL)
End Sub