VB excel - masquer / afficher des colonnes

Résolu
oganouo Messages postés 4 Date d'inscription   Statut Membre -  
oganouo Messages postés 4 Date d'inscription   Statut Membre -
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
Configuration: Windows XP
Internet Explorer 6.0

3 réponses

  1. pilas31 Messages postés 1878 Statut Contributeur 648
     
    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
  2. pilas31 Messages postés 1878 Statut Contributeur 648
     
    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
  3. oganouo Messages postés 4 Date d'inscription   Statut Membre
     
    Merci beaucoup ça fonctionne.
    0