Je n'avais pas saisie qu'il pouvait y avoir des + et des -, donc la somme en ligne jaune = 0 mais la colonne n'a pas que des 0 !
Correction du code en conséquence :
Sub Masquercolonnesvides()
Dim Cel As Range, DerLig As Long, DerCol As Integer, Col As Integer
' dernière ligne
DerLig = Range("A" & Rows.Count).End(xlUp).Row
' dernière colonne
DerCol = Cells(1, Cells.Columns.Count).End(xlToLeft).Column
For Col = 9 To DerCol ' colonne I à la dernière
' si le nombre de 0 égal le nombre de ligne de données
If Application.CountIf(Range(Cells(2, Col), Cells(DerLig, Col)), 0) = DerLig - 1 Then
' on masque
Cells(1, Col).EntireColumn.Hidden = True
Else
' sinon on montre
Cells(1, Col).EntireColumn.Hidden = False
End If
Next Col
End Sub
Par colonne, on compte les 0, s'il y en a autant que de ligne de données on masque, sinon on montre.
@ bientôt
LouReeD