Masquer les feuilles excel macro VBA

xmid49

XLDnaute Nouveau
Bonjour,

Nouveau problème (même si je commence à m'en sortir petit à petit dans VBA), je souhaite masquer des feuilles excel dans mon fichier professionnel afin qu'elle ne soit pas consultable par d'autres personnes.
Pour ce faire j'utilise la fonction suivante:

Sub masquerlesfeuilles ()
'Masquer feuilles excel'

Sheets("Nom de la feuille").Visible = False
Sheets("Feuil2").Visible = False
Sheets("Feuil3").Visible = False

End Sub

Lorsque je clique sur mon bouton VBA "Masquer les feuilles", les feuilles que je souhaite afficher se masquer alors que d'autres feuilles, que je ne souhaites pas voir afficher, reste affichées.
exemple: J'ai trois feuilles, je souhaite conserver la feuille 3 et masquer les feuilles 1 et 2.
Dans mon cas, lorsque je clique sur "Masquer les feuilles", la feuille 2 s'affiche et les feuilles 1 et 3 se masquent.

Autre question, je voudrais également que les feuilles se cachent automatiquement à la fermeture de mon fichier. Es ce possible? Quel code doit-on utiliser?

Merci d'avance
 

youky(BJ)

XLDnaute Barbatruc
Re : Masquer les feuilles excel macro VBA

Salut bien,

Voici un code à mettre dans un module
Code:
Sub affiche()
For k = 1 To Sheets.Count
Sheets(k).Visible = True
Next
End Sub
Sub masquage()
For k = 1 To Sheets.Count
If Sheets(k).CodeName <> "Feuil3" Then Sheets(k).Visible = 2
Next
End Sub

et pour masquer en quittant au moment de l'enregistrement voici
1 doubleclick sur Thisworkbook et....à copier
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
masquage
End Sub

Bruno
 

xmid49

XLDnaute Nouveau
Re : Masquer les feuilles excel macro VBA

Merci Bruno pour ta réponse,

Je viens d'insérer ta macro. Problème, dans mon fichier j'ai 3 feuilles à laisser afficher sur environ 14 feuilles au total. Voici ce que j'ai écris:

Sub masquage ()

If Sheets(K).CodeName <> "Feuil13" And "Feuil12" And "Feuil14" Then Sheets(K).Visible = 2
Next
End Sub
 

youky(BJ)

XLDnaute Barbatruc
Re : Masquer les feuilles excel macro VBA

Heu!! non

Sub masquage()
For k = 1 To Sheets.Count
nom=Sheets(k).CodeName
If nom <> "Feuil12" or nom <> "Feuil13"or nom <> "Feuil14" Then Sheets(k).Visible = 2
Next
End Sub

Bruno
 
Dernière édition:

xmid49

XLDnaute Nouveau
Re : Masquer les feuilles excel macro VBA

Désolé Bruno, J'ai bien copier ta macro mais il me met erreur 1004. J'ai regardé si l'erreur ne correspondait pas à un problème de protection de la feuille ou du classeur. aucune protection.
J'ai également remplacé "Sheets" par "WorkSheets", on sait jamais, même constat.

Ce qui m'énerve c'est que je suis sur le problème depuis deux jours, mon fichier est pratiquement terminé avant d'être applicable à l'ensemble des autres fichiers. Mais je bloque sur cette macro et c'est certainement la plus importante.

Merci d'avance pour votre aide.
Romain
 

Pièces jointes

  • Problème Macro.jpg
    Problème Macro.jpg
    62.6 KB · Affichages: 110
  • Problème Macro.jpg
    Problème Macro.jpg
    62.6 KB · Affichages: 125
  • Problème Macro.jpg
    Problème Macro.jpg
    62.6 KB · Affichages: 130

youky(BJ)

XLDnaute Barbatruc
Re : Masquer les feuilles excel macro VBA

Erreur de ma part.
J'ai mis des Or au lieu de And
donc cela donne

Code:
Sub masquage()
For k = 1 To Sheets.Count
nom = Sheets(k).CodeName
If nom <> "Feuil12" And nom <> "Feuil13" And nom <> "Feuil14" Then Sheets(k).Visible = 2
Next
End Sub
Bruno
 

Discussions similaires

Statistiques des forums

Discussions
312 505
Messages
2 089 070
Membres
104 020
dernier inscrit
Mzghal