Sub NettoyageZeros()
Dim r As Range, c As Range, i&
Set r = Intersect(Selection.EntireColumn, ActiveSheet.UsedRange.Rows(1))
If r Is Nothing Then Exit Sub
Application.ScreenUpdating = False
For Each c In r
Set r = Intersect(c.EntireColumn, ActiveSheet.UsedRange)
If r.Count = 1 Then
If r = 0 Then r = ""
Else
t = r.Formula 'matrice, plus rapide
For i = 1 To UBound(t)
If t(i, 1) = "0" Then t(i, 1) = ""
Next
r.Formula = t
End If
Next
Set r = ActiveSheet.UsedRange 'actualise la barre de défilement verticale
End Sub