Re,
C'est plus clair avec ces commentaires ?
Public Sub DeleteColumns()
'Déclaration des constantes
Const COL As Byte = 2 '1ère. colonne de données
Const ROW As Byte = 4 '1ère ligne de données
Const LROW As Byte = 4 'Nombre de lignes de la plage
'Déclaration des varaibles
Dim lastColumn As Long, lCol As Long
Dim rng As Range
Application.ScreenUpdating = False
With ActiveSheet
lastColumn = .Cells(ROW, .Columns.Count).End(xlToLeft).Column
For lCol = lastColumn To COL + 1 Step -1
'set rng=Cells(4,lCol).resize(4)
Set rng = Cells(ROW, lCol).Resize(LROW)
If Application.Sum(rng) = 0 Then rng.Delete
Next lCol
End With
End Sub