Masquer colonnes par macro

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
 

Paladin

XLDnaute Junior
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.
 
C

Cali

Guest
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
 

Paladin

XLDnaute Junior
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).
 
C

Cali

Guest
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

  • Cali.zip
    10.8 KB · Affichages: 317

Paladin

XLDnaute Junior
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

  • Cali_20050810161153.zip
    14 KB · Affichages: 811

onaudan

XLDnaute Nouveau
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
 

Discussions similaires

Réponses
11
Affichages
606
Réponses
2
Affichages
553

Statistiques des forums

Discussions
312 842
Messages
2 092 743
Membres
105 519
dernier inscrit
faivre-roussel.ivan@orang