Macro sur 6 colonnes

Bonjour à tous,

J'ai écrit ce code pour masquer des colonnes :

Sub Masquer()
For Each Column In ActiveSheet.UsedRange.Columns
If Column.Rows(14).Value = Empty Then
Column.EntireColumn.Hidden = True
End If
Next
End Sub

Comment puis-je faire pour que la macro ne s'applique qu'aux colonnes C à H de ma feuille (en sachant que dans mon tableau il y a des données dans les colonnes précédentes et suivantes). J'imagine qu'il utiliser une boucle For mais je ne sais pas comment définir la boucle...

Par avance, merci.

Auré.

Bonjour

Un essai

Mais il ne faut pas non plus de formule qui retourne une chaine vide

Sub Masque_Colonnes()
Dim I As Byte
  For I = 3 To 8
    If Application.CountA(Columns(I)) = 0 Then Columns(I).Hidden = True
  Next I
End Sub

Salut Banzai et merci.

J'ai essayé, et il ne masque que la colonne H. J'ai donc fait un mix de ton code et du mien qui afin qu'il masque les colonnes dont la ligne 14 est vide. Ca fonctionne !

Sub Masque_Colonnes2()
Dim I As Byte
  For I = 3 To 8
  If Columns(I).Rows(14).Value = Empty Then Columns(I).Hidden = True
  Next I
End Sub

Merci beaucoup de ton aide.

Auré.

Bonjour,

tu peux aussi écrire

Sub Masquer()
Dim i%
    For i = 3 To 8 'colonnes C à H
        If IsEmpty(Cells(14, i)) Then Columns(i).Hidden = True
    Next i
End Sub

Claude

Bonsoir Claude,

Effectivement ça fonctionne parfaitement aussi. Merci.

Petite question par rapport à ton code : quand on utilise la variable Cells, la 1ère donnée entre parenthèse indique forcément le n° de ligne ?

re,

c'est çà !

Cells(ligne, colonne)

ici ligne = 14 et colonne = la variable i

Claude

Super, merci de ton aide et de tes lumières.

Bonne soirée.

Auré

Rechercher des sujets similaires à "macro colonnes"