Basosa a écrit :
Rebonjour,
En fait, il y a un petit problème, cela filtre bien les individus au niveau des lignes, mais pas des colonnes
oups , je n'avais pas remarqué cette subtilité.
voici une solution, j'ai fait quelques tris en espérant que cela ne gêne pas
Sub test()
Set ws1 = Sheets("feuil1")
dl1 = ws1.Cells(Rows.Count, 1).End(xlUp).Row
dc1 = ws1.Cells(1, Columns.Count).End(xlToLeft).Column
Set ws2 = Sheets("feuil2")
dl2 = ws2.Cells(Rows.Count, 1).End(xlUp).Row
ws2.Range(ws2.Cells(1, 1), ws2.Cells(dl2, 1)).Sort key1:=ws2.Range("A1"), order1:=xlAscending, Header:=xlNo
ws1.Range(ws1.Cells(1, 2), ws1.Cells(dl1, dc1)).Sort key1:=ws1.Range("A1"), order1:=xlAscending, Orientation:=xlLeftToRight, Header:=xlYes
Set ws3 = Sheets("feuil3")
ws3.Cells.ClearContents
ws1.Rows(1).Copy ws3.Cells(1, 1)
i = 1
l = 1
While ws2.Cells(i, 1) <> ""
Set re = ws1.Range("A:A").Find(ws2.Cells(i, 1), lookat:=xlWhole)
l = l + 1
If re Is Nothing Then
ws3.Cells(l, 1) = ws.Cells(i, 1)
ws3.Cells(l, 2) = "non trouvé dans " & ws1.Name
Else
re.EntireRow.Copy ws3.Cells(l, 1)
End If
i = i + 1
Wend
For i = 2 To l
While Cells(1, i) <> Cells(i, 1)
Columns(i).Delete shift:=xlLeft
Wend
Next i
End Sub