Rechercher : dans
Par :

VB excel - masquer / afficher des colonnes

Dernière réponse le 29 oct 2008 à 09:29:08 oganouo, le 22 oct 2008 à 11:21:10 
 Signaler ce message aux modérateurs

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-0­7 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

1

pilas31, le 22 oct 2008 à 14:48:04

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,

Répondre à pilas31

2

pilas31, le 22 oct 2008 à 14:59:30

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,

Répondre à pilas31

3

 oganouo, le 29 oct 2008 à 09:29:08

Merci beaucoup ça fonctionne.

Répondre à oganouo