Sub SupprimerLignesColonnesVides()
Application.ScreenUpdating = False
On Error Resume Next 'pour les SpecialCells si aucune valeur d'erreur
With ActiveSheet.UsedRange
'---suppression des colonnes vides---
.Rows(.Rows.Count + 1) = "=1/SIGN(COUNTA(R1C:R[-1]C))"
.Rows(.Rows.Count + 1) = .Rows(.Rows.Count + 1).Value 'supprime les formules
.Resize(.Rows.Count + 1).Sort .Rows(.Rows.Count + 1), xlAscending, Orientation:=xlLeftToRight 'tri pour accélérer
.Rows(.Rows.Count + 1).SpecialCells(xlCellTypeConstants, 16).EntireColumn.Delete
.Rows(.Rows.Count + 1).ClearContents
'---suppression des lignes vides---
.Columns(.Columns.Count + 1) = "=1/SIGN(COUNTA(RC1:RC[-1]))"
.Columns(.Columns.Count + 1) = .Columns(.Columns.Count + 1).Value 'supprime les formules
.Resize(, .Columns.Count + 1).Sort .Columns(.Columns.Count + 1), xlAscending, Orientation:=xlTopToBottom 'tri pour accélérer
.Columns(.Columns.Count + 1).SpecialCells(xlCellTypeConstants, 16).EntireRow.Delete
.Columns(.Columns.Count + 1).ClearContents
End With
With ActiveSheet.UsedRange: End With 'actualise les barres de défilement
End Sub