MACRO pour afficher ET masquer des groupes de colonnes progressivement

Guizmox

XLDnaute Nouveau
Bonjour,

Peut-être saurez-vous m'aider? Je sèche sur la question...

J'ai un tableau très lourd, et je veux en simplifier la lecture en n'ayant que peu de colonnes d'affichées.
Pour se faire, j'ai créé un bouton "suivant" qui permette d'afficher 4 colonnes après la dernière visible (toutes les colonnes auront été masquées au préalable, sauf les 8 premières), tout en masquant les 4 premières. Et ainsi de suite...

EX :
* Colonnes visibles à l'ouverture du fichier : (A, B, C,) D, E, F, G, H, I, J, K
* Colonnes visibles après avoir cliqué sur le bouton : (A, B, C,) H, I, J, K, L, M, N, O
* Colonnes visibles en cliquant de nouveau dessus : (A, B, C,) L, M, N, O, P, Q, R, S
* Et ainsi de suite...

Le bouton est fait, c'est la macro à lui assigner qui manque.

D'avance merci pour vos réponses!!!

Guizmox
 

Vorens

XLDnaute Occasionnel
Re : MACRO pour afficher ET masquer des groupes de colonnes progressivement

Bonjour,


Je te conseil toujours de mettre un fichier en pièce jointe, tu multiplie par 100 les chances que quelqu'un t'aide rapidement, car faire a macro que tu demande prens très peux de temps. Remplire un tableau de donnée bidon, c'est long et chia**. Sans parler du fait qu'avec le fichier, on peut directement faire ce que tu cherche alors qu'en y allant au bol, on risque de perdre du temps à faire quelque chose qui n'est pas ce à quoi tu t'attendais.
 

cbea

XLDnaute Impliqué
Re : MACRO pour afficher ET masquer des groupes de colonnes progressivement

Bonjour,

voici un exemple de solution. Le code est à mettre dans le bouton :
Code:
    Dim lgColDebFix As Long
    Dim lgColNbMasque As Long
    Dim lgCol As Long
    Dim lgColAMasquer As Long, lgColAMasquerMax As Long
    
    ' A paramétrer au besoin
    lgColDebFix = 3         ' 3 premières colonnes fixes
    lgColNbMasque = 4       ' Nombre de colonnes à masquer
    lgColAMasquer = 0
    lgColAMasquerMax = 0
    
    ' Boucle pour déterminer la première colonne à masquer
    For lgCol = lgColDebFix + 1 To Cells.Columns.Count
        If Columns(lgCol).EntireColumn.Hidden = False Then
            lgColAMasquer = lgCol
            Exit For
        End If
    Next lgCol
    
    ' La colonne à masquer ne peut pas dépasser la nombre maxi de colonnes dans une feuille
    lgColAMasquerMax = lgColAMasquer + lgColNbMasque - 1
    If lgColAMasquerMax > Cells.Columns.Count Then lgColAMasquerMax = Cells.Columns.Count - 1
    
    ' Masquer les colonnes
    For lgCol = lgColAMasquer To lgColAMasquerMax
        Columns(lgCol).EntireColumn.Hidden = True
    Next lgCol
 

Guizmox

XLDnaute Nouveau
Re : MACRO pour afficher ET masquer des groupes de colonnes progressivement

Vorens : ton conseil ne tombe pas dans l'oreille d'un sourd! Je mets en pièce-jointe le type de tableau sur lequel je travaille.

Cbea : Merci pour ce code, c'est un très bon début qui semble bien fonctionner. Cependant, il ne résout pas tout le problème étant donné qu'il n'affiche pas les 4 colonnes suivantes :

Je veux qu'à chaque pression sur le bouton, il se produise :
les trois premières cellules ne changent pas
les 4 suivantes se masquent
les 4 d'après restent visibles
et les 4 cellules masquées qui suivent deviennent visibles.

J'espère que le tableau que j'ai joint me rendra plus compréhensible :
les 4 colonnes en date du 01/01/2011 se masquent
les 4 colonnes en date du 02/01/2011 restent
les 4 colonnes en date du 03/10/2011 s'affichent

Après un second clic sur le bouton "suivant"
les 4 colonnes en date du 02/01/2011 se masquent
les 4 colonnes en date du 03/01/2011 restent
les 4 colonnes en date du 04/10/2011 s'affichent

ETC...
 

Pièces jointes

  • test.xls
    48.5 KB · Affichages: 95
  • test.xls
    48.5 KB · Affichages: 106
  • test.xls
    48.5 KB · Affichages: 103
Dernière édition:

Victor21

XLDnaute Barbatruc
Re : MACRO pour afficher ET masquer des groupes de colonnes progressivement

Bonjour à tous.

La dernière solution de cbea, avec un application.ScreenUpdating à false en début de chacune des macros et à true à la fin devrait combler Guizmox.
 

Guizmox

XLDnaute Nouveau
Re : MACRO pour afficher ET masquer des groupes de colonnes progressivement

C'est génial!

Exactement ce qu'il me fallait! Et puis j'ai même été devancé pour ma seconde question pour la macro "précédent"... ;)

Grand MERCIIIII, d'autant plus que vous avez su me répondre très rapidement !
 

Guizmox

XLDnaute Nouveau
Re : MACRO pour afficher ET masquer des groupes de colonnes progressivement

Rebonjour!

Je viens de nouveau à vous, dans la continuité de mon précédent blocage.
J'ai bien avancé dans mon projet depuis, et je souhaite automatiser encore plus l'utilisation de mon tableau.
Ainsi, je cherche une macro qui permette, lorsque l'on clique sur le bouton "mise en page" (en haut à gauche), d'afficher le premier ensemble de colonnes vides (et ce, où que l'on soit dans le tableau).

Ce n'est pas très clair comme ça, mais en se basant sur mon exemple, voila ce que je voudrais faire.

A un moment donné, les colonnes affichées sont :
-Les trois colonnes grises à gauche (qui restent fixes)
-Les quatre colonnes en date du 01/01/2011
-Les quatre colonnes en date du 02/01/2011

Après avoir cliqué sur le bouton, je voudrais qu'il y ait systématiquement :
-Les trois colonnes grises à gauche (qui restent fixes)
-Les dernières quatre colonnes remplies de données (ici, en date du 04/01/2011)
-Les quatre colonnes qui suivent les quatre dernières remplies (ici, elles seraient en date du 05/01/2011)

Bien sûr, au fil du temps les colonnes se remplieront et la dernière colonne non vide ne restera pas en date du 04/01/2011. Les critères qui importent sont vraiment d'afficher les trois colonnes fixes, les quatre dernières remplies, et les quatre premières non-remplies.

Pour pimenter la partie, la macro doit pouvoir fonctionner même si les deux groupes de 4 colonnes "mobiles" visibles avant de cliquer sur le bouton sont situées après :) plus à droite que le point d'arrivée) dans le tableau.

D'avance grand merci à ceux qui pourront résoudre ce problème!
Je mets en pièce jointe le fichier servant d'illustration à mes propos.

Guizmox
 

Pièces jointes

  • test-v2.xls
    74.5 KB · Affichages: 81
  • test-v2.xls
    74.5 KB · Affichages: 88
  • test-v2.xls
    74.5 KB · Affichages: 93
Dernière édition:

Discussions similaires

Réponses
7
Affichages
337
Réponses
20
Affichages
1 K

Statistiques des forums

Discussions
312 364
Messages
2 087 626
Membres
103 625
dernier inscrit
Smer