Masquer colonnes par macro

  • Initiateur de la discussion Initiateur de la discussion Cali
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

Cali

Guest
Bonjour à tous

Voila je souhaiterais pouvoir masquer des colonnes en fonction d'un mois.

Je m'explique, j'ai un fichier où chaque colonne correspond à un mois de l'année et à la fin une colonne total. Et, j'aimerais pouvoir afficher tous les mois précédent en fonction du mois choisi.

Par exemple, je choisis le mois de juillet, je voudrais afficher les mois de janvier à juillet et que les autres mois de l'année soient masqués, mais seulement les mois.

Est-il possible de faire cela par macro, sachant que je suis débutant.

Merci par avance pour votre aide.

Cali
 
Bonjour Cali,

Je n'ai malheureusement pas beaucoup de temps, mais oui, ce que tu demandes est possible.
Je te conseilles d'utiliser l'enregistreur de macros qui te donnera au moins les fonctions que tu cherches.

A titre d'info, le code suivant permet de cacher la colonne A.
Code:
Columns('A:A').Select
Selection.EntireColumn.Hidden = True
Si tu remplaces 'A:A' par un : NumColDebut & ':' & NumColFin
Où NumColDebut et NumColFin sont des variables qui dépendent de la valeur de la cellule sélectionnée (celle où il y a ton mois en question).

Code:
Select Case ActiveCell
Case 'Janvier'
NumColDebut = 'B'
NumColFin = 'L'
Case 'Fevrier'
NumColDebut = 'C'
NumColFin = 'L'
...
End Select

Pour lancer la macro, il faut un bouton sur ta feuille et que tu aies sélectionné la cellule contenant le mois avant de cliquer sur le bouton.

J'espère que ça t'aider.
Bonne continuation.
 
Salut et merci à vous,

Concernant la macro, de Paladin, j'ai essayé de remplacer 'A:A' par un : NumColDebut & ':' & NumColFin, mais message d'erreurs, faut-il rajouté quelques choses?

Et pour afficher le bouton sur la feuille on fait comment.

Désolé mais je n'y connais rien en VBA.

Merci beaucoup

Cali

PS: si besoin je joins un apercu du fichier
 
Quel message d'erreur as-tu ?
As-tu bien déclaré les variables NumColDebut et NumColFin avant de les utiliser (voir le Select Case) ?
Pour t'assurer que ça prend bien la valeur de ta cellule active (cf ActiveCell.Value), rajoutes à la fin du Select Case :
Code:
...
Case Else
MsgBox 'Erreur'
End Select
Si la mesagebox apparait, c'est qu'il y a un problème.
Mets nous ton fichier (en ZIP, moins de 50 ko, sans espace) pour qu'on puisse voir (ou un extrait avec les macros suffira).
 
Voici le fichier avec la macro

Pourrais-tu nous expliquer la création du bouton qui exécuterait la macro en fonction des mois choisis (début et fin) ?

Merci pour ton aide.


Cali
[file name=Cali.zip size=11063]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Cali.zip[/file]
 

Pièces jointes

Voilà ce que j'ai fait.
Va voir dans VBA (Alt+F11) pour le code et si besoin, reviens sur le forum.
Mais je ne pourrai pas t'aider avant demain.
[file name=Cali_20050810161153.zip size=14369]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Cali_20050810161153.zip[/file]
 

Pièces jointes

Re : Masquer colonnes par macro

Bonjour à tous. je suis nouveau sur le forum et en plein désespoir je vous expose mon pb. J'essai de faore comme Cali, cad masquer des colonnes d'un onglets. LE pb est que la macro que j'ai récupéré du fichier de Cali et "bricoler" pour le mien ne fonctionne pas. QQ1 aurait une idée. J'ai toujours le message d'erreur.

Ci-joint la macro

Private Sub CommandButton1_Click()
Sheets("DONNEES TABLEAUX").Visible = True
Application.Run "OnGenericSetSheetActive"
Columns("E:AB").EntireColumn.Hidden = False
NumColFin = "AB"
Select Case Range("A1").Value
Case "Janv. 2007"
NumColDebut = "E"
Case "Fév. 2007"
NumColDebut = "F"
Case "Mars 2007"
NumColDebut = "G"
Case "Avr. 2007"
NumColDebut = "H"
Case "Mai 2007"
NumColDebut = "I"
Case "Juin 2007"
NumColDebut = "J"
Case "Juill. 2007"
NumColDebut = "K"
Case "Août 2007"
NumColDebut = "L"
Case "Sept. 2007"
NumColDebut = "M"
Case "Oct. 2007"
NumColDebut = "N"
Case "Nov. 2007"
NumColDebut = "O"
Case "Déc. 2007"
NumColDebut = "P"
Case "Janv. 2008"
NumColDebut = "Q"
Case "Fév. 2008"
NumColDebut = "R"
Case "Mars 2008"
NumColDebut = "S"
Case "Avr. 2008"
NumColDebut = "T"
Case "Mai 2008"
NumColDebut = "U"
Case "Juin 2008"
NumColDebut = "V"
Case "Juill. 2008"
NumColDebut = "W"
Case "Août 2008"
NumColDebut = "X"
Case "Sept. 2008"
NumColDebut = "Y"
Case "Oct. 2008"
NumColDebut = "Z"
Case "Nov. 2008"
NumColDebut = "AA"
Case "Déc. 2008"
NumColDebut = "AB"

Case Else
MsgBox "Pas de correspondance"
End Select

Columns(NumColDebut & ":" & NumColFin).EntireColumn.Hidden = True
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
303
Réponses
12
Affichages
460
Réponses
3
Affichages
678
Retour