Private Sub Worksheet_Activate()
Dim cc%, rc&
Application.ScreenUpdating = False
Rows("3:" & Rows.Count).Delete 'RAZ
With Sheets("Feuil1").ListObjects(1).Range
cc = .Columns.Count + 1
rc = .Rows.Count
.Copy [A3] 'copier-coller du tableau structuré
End With
Cells(3, cc).Resize(rc) = "=1/SIGN(COUNTIF(RC1:RC[-1],""><""))" 'colonne auxiliaire
With ListObjects(1).Range
.Columns(cc) = .Columns(cc).Value 'supprime les formules en colonne auxiliaire
.Sort .Columns(cc), xlAscending, Header:=xlYes 'tri pour regrouper et accélérer
On Error Resume Next 'si aucune SpecialCell
.Columns(cc).SpecialCells(xlCellTypeConstants, 16).EntireRow.Delete 'supprime les valeurs d'erreur
.Columns(cc).Delete xlToLeft 'supprime la colonne auxiliaire
End With
With UsedRange: End With 'actualise les barres de défilement
Columns.AutoFit 'ajustement largeurs
End Sub