Sub SupprimerOUT()
Application.ScreenUpdating = False
On Error Resume Next 'si aucune SpecialCell
With ActiveSheet
If .FilterMode Then .ShowAllData 'si la feuille est filtrée
'---épure la feuille en supprimant les lignes vides du bas---
.Range(.Cells.Find("*", , xlValues, , xlByRows, xlPrevious)(2), .Rows(.Rows.Count)).Delete
'---supprime les lignes OUT---
With .UsedRange.Offset(1).Resize(.UsedRange.Rows.Count - 1) 'évite la ligne des en-têtes
.Columns(44).EntireColumn.Insert 'insère une colonne auxiliaire
With .Columns(44)
.FormulaR1C1 = "=1/(RC[1]<>""OUT"")" 'valeur d'erreur si OUT
.Value = .Value 'supprime les formules
.EntireRow.Sort .Cells, xlAscending, Header:=xlNo 'tri pour regrouper et accélérer
.SpecialCells(xlCellTypeConstants, 16).EntireRow.Delete 'supprime les valeurs d'erreur
.EntireColumn.Delete 'supprime la colonne auxiliaire
End With
End With
'---actualise les barres de défilement---
With .UsedRange: End With
End With
End Sub