VB excel - masquer / afficher des colonnes

Résolu
oganouo Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
oganouo Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Dans une feuille excel, j'ai l'énumération des mois de janvier 2007 à décembre 2008 :


A1 A2 A3 A4 A5 A6 A7 A8 A9 A10
janv-07 févr-07 mars-07 avr-07 mai-07 juin-07 juil-07 août-07 sept-07 oct-07

A11 A12 A13 A14 A15 A16 A17 A18 A19 A20
nov-07 déc-07 janv-08 févr-08 mars-08 avr-08 mai-08 juin-08 juil-08 août-08

A21 A22 A23 A24
sept-08 oct-08 nov-08 déc-08

Je voudrais, à l'aide d'un code VB, masquer des colonnes :
Si nous sommes en octobre 2008, je veux que seules les colonnes de octobre 2007 à octobre 2008 s'affichent.
Quelqu'un a-t-il une solution à me proposer?
Merci d'avance.
oganouo

3 réponses

pilas31 Messages postés 1825 Date d'inscription   Statut Contributeur Dernière intervention   645
 
Bonjour,

Je propose le code VB suivant :
Dim CACHER As Boolean
Dim ICOL As Integer

CACHER = True
For ICOL = 1 To 24
    If Month(Now) = Month(Cells(1, ICOL)) Then
        Columns(ICOL).EntireColumn.Hidden = False
        CACHER = Not (CACHER)
    Else
         Columns(ICOL).EntireColumn.Hidden = CACHER
    End If
Next ICOL


On suppose que les colonnes vont de 1 à 24 et on teste si le mois dans l'entête de colonne est le même que le mois courant. Tant que ce n'est pas le mois courant on cache les colonnes puis on affiche et ensuite on cache à nouveau.

Cordialement,
1
pilas31 Messages postés 1825 Date d'inscription   Statut Contributeur Dernière intervention   645
 
Re Bonjour,

Je viens de trouver encore plus simple ...

IDEB = Month(Now)
Range(Columns(1), Columns(24)).EntireColumn.Hidden = True
Range(Columns(IDEB), Columns(IDEB + 12)).EntireColumn.Hidden = False


Cordialement,
0
oganouo Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup ça fonctionne.
0