Sub SupprimeX()
Dim t, P As Range, decharge%, D As Range, c As Range, n%, i, prem As Range
t = Timer
Set P = [A1:VDX11] '15000 colonnes, à adapter
decharge = 50 'nombre de colonnes par décharge, à optimiser
Set D = P.Resize(, decharge) 'initialisation
Application.ScreenUpdating = False
For Each c In P.Columns
n = n + 1
i = Application.Match("X", c, 0)
If IsNumeric(i) Then Set prem = Union(IIf(prem Is Nothing, c.Cells(i), prem), c.Cells(i))
If n = decharge Then
If Not prem Is Nothing Then D.Replace "X", "", xlWhole: prem = "X "
Set D = D.Offset(, decharge)
Set prem = Nothing
n = 0
End If
Next
If Not prem Is Nothing Then D.Resize(, n).Replace "X", "", xlWhole: prem = "X "
MsgBox "Durée " & Format(Timer - t, "0.00 \s")
End Sub