Bonjour le fil, bonjour le forum,
Une proposition VBA avec le code c-dessous :
Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim I As Integer 'déclare la variable I (Incrément)
Dim J As Integer 'déclare la variable I (Incrément)
Dim CC() As String 'déclare la variable CC (Concaténation des Colonnes)
Dim PL As Range 'déclare la variable PL (PLage)
Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter à ton cas)
Set PL = O.Range("A1") 'initialise la plage PL
TV = O.Range("A1").CurrentRegion 'définit le tableau des valeurs TV (à adapter s'il ne commence pas en A1)
ReDim CC(1 To UBound(TV, 1)) 'redimensionne le tableau CC
For I = 1 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeur TV
'concaténe les 5 colonnes de la ligne dans la donnée CC(I)
CC(I) = CStr(TV(I, 1)) & "&" & CStr(TV(I, 2)) & "&" & CStr(TV(I, 3)) & "&" & CStr(TV(I, 4)) & "&" & CStr(TV(I, 5))
Next I 'prochaine ligne de la boucle
For I = 1 To UBound(CC) 'boucle sur toutes les lignes I du tableau CC
For J = I To UBound(CC) 'boucle sur toutes les lignes J du tableau CC (en commençant par la ligne I)
'si I est différent de J et la donnée CC(I) est égale à la donnée CC(J), redéfinit la plage PL
If I <> J And CC(I) = CC(J) Then Set PL = IIf(PL.Cells.Count = 1, O.Rows(J), Application.Union(PL, O.Rows(J)))
Next J 'prochaine ligne de la boucle 2
Next I 'prochaine ligne de la boucle 1
PL.Select 'sélectionne la plage PL (permet de vérifier dans un premier temps, a effacer ensuite)
'PL.Delete'supprimme la plage PL (enlever le commentaire après vérification)
End Sub
Tel qu'il est, le code permet de vérifier si les doublons sont bien sélectionnés. Il te faudra supprimer ou commenter l'avant dernière ligne et enlever le commentaire (l'apostrophe en début de ligne) de la dernière pour qu'ils soient supprimés.