OVH Cloud OVH Cloud

Cacher une feuille masquée

12 réponses
Avatar
PhilippeD1
Bonjour la communauté,

je souhaiterais savoir s'il est possible de cacher une feuille qui est
masquée. C'est à dire si l'utilisateur fait : Format, Feuille, Afficher, il
ne la voit pas.
Cette feuille est accessible uniquement par une case à cocher sur la
première feuille.
Je vous remercie d'avance.
@ +

2 réponses

1 2
Avatar
PhilippeD1
Bonjour Isabelle,

je te remercie de ces précieux conseils puisque j'obtiens le résultat tant
recherché.
MERCI pour tout...
@ +


re bonjour Philippe,

'CheckBox Valeur entière indiquant si l'élément est activé.
' Null Indique que l'élément est à l'état Null, ni activé, ni désactivé.
' –1 True. Indique que l'élément est activé.
' 0 False. Indique que l'élément est désactivé.

Private Sub CheckBox1_Click()
If CheckBox1.Value = 0 Then
Sheets("Feuil2").Visible = xlSheetVeryHidden
Sheets("Feuil3").Visible = xlSheetVeryHidden
Else
Sheets("Feuil2").Visible = True
Sheets("Feuil3").Visible = True
End If
End Sub

avant de copier la macro sur la page code contenant le checkbox,
il faut que les feuilles 2 et 3 soit visible et que le checkbox soit désactivé.

isabelle


Bonjour Isabelle,

Sub masque()
Sheets("Feuil1").Visible = xlSheetVeryHidden
End Sub

Où dois-je mettre ce code ?
Car je n'obtiens aucun résultat...
Serais-je si mauvais que cela ?!?!
@ +



bonjour Philippe,

d'après ces informations,
Sheets("Feuil1").Visible = xlVeryHidden
fait exactement ce que tu désire
je ne comprend pas le problème.

isabelle



Si il y a des trucs qui t'échappent, c'est que je n'ai pas été très clair.
Donc voici un complément d'information:
Sur la feuille1, j'ai des noms de site de production avec pour chacun une
case à cocher qui correspond à une macro.Ces macros permettent de rendre
visible des feuilles qui possèdent des spécificités pour chaque site de
production.
Donc si un site coche sa case, il voit ses feuilles et non celles d'un autre
site; sachant que le site doit me renvoyer ses feuilles remplies avec des
informations.
Bon d'accord, je pourrais procéder différement en utilisant un mot de passe
par feuille pour chacun des sites. Cependant, je ne souhaites pas compliquer
la vie des sites (oui, pour certains mettre un mot de passe peut être
compliqué...).
Si ma demande est impossible et, bien je continuerais de chercher une
solution peut-être différente......
Merci pour tout.
@ +




..Cependant, je souhaiterais que les feuilles 2 et 3 soient uniquement
accessibles par l'intermédiaire de ma macro. Actuellement, les feuilles
peuvent être ouvertes en faisant Format, Feuilles, Afficher.


Pourquoi donc alors :
Sheets("Feuil2").Visible = True
Sheets("Feuil3").Visible = True

Il y a surement des trucs qui m'échappent..

AV
















Avatar
PhilippeD1
Bonjour PMO,

je te remercie car en appliquant tes consignes, j'obtiens ce que je
souhaitais obtenir.
MERCI pour tout...
@ +


Rebonjour,

Si j'ai bien compris.
Vous voulez cacher toutes les feuilles SAUF CELLE qui contient
les cases à cocher. Puis après exécution de la macro de la case
à cocher masquer toutes les feuilles sauf celles concernèes
(et masquer également la feuille qui contient les cases à cocher).
Si c'est bien ça alors essayez ceci

1) Copiez le code suivant dans ThisWorkbook
en double cliquant sur ThisWorkbook dans la
fenêtre Projet du VBE. Adaptez la valeur de la variable nom$.
'**********
Private Sub Workbook_Open()
Dim S As Worksheet
Dim bool As Boolean
Dim nom$
'---- Adapter le nom "Feuil1"
'-- (feuille où il y a les cases à cocher)
nom$ = "Feuil1"
For Each S In ThisWorkbook.Sheets
If S.Name = nom$ Then
S.Visible = xlSheetVisible
bool = True
Exit For
End If
Next S
If Not bool Then
MsgBox "La feuille ''" & nom$ & "'' est introuvable"
Exit Sub
End If
For Each S In ThisWorkbook.Sheets
If S.Name <> nom$ Then
S.Visible = xlSheetVeryHidden
End If
Next S
End Sub
'**********

2) Copiez le code suivant dans la macro de la case à cocher
'**********
Private Sub CheckBox1_Click()
Sheets("Feuil2").Visible = xlSheetVisible
Sheets("Feuil3").Visible = xlSheetVisible
Sheets("Feuil1").Visible = xlVeryHidden
End Sub
'**********

REMARQUE
La feuille "Feuil1" redeviendra visible à la réouverture du classeur.

Cordialement.
--
PMO
Patrick Morange



Bonjour Isabelle,

Sub masque()
Sheets("Feuil1").Visible = xlSheetVeryHidden
End Sub

Où dois-je mettre ce code ?
Car je n'obtiens aucun résultat...
Serais-je si mauvais que cela ?!?!
@ +


bonjour Philippe,

d'après ces informations,
Sheets("Feuil1").Visible = xlVeryHidden
fait exactement ce que tu désire
je ne comprend pas le problème.

isabelle


Si il y a des trucs qui t'échappent, c'est que je n'ai pas été très clair.
Donc voici un complément d'information:
Sur la feuille1, j'ai des noms de site de production avec pour chacun une
case à cocher qui correspond à une macro.Ces macros permettent de rendre
visible des feuilles qui possèdent des spécificités pour chaque site de
production.
Donc si un site coche sa case, il voit ses feuilles et non celles d'un autre
site; sachant que le site doit me renvoyer ses feuilles remplies avec des
informations.
Bon d'accord, je pourrais procéder différement en utilisant un mot de passe
par feuille pour chacun des sites. Cependant, je ne souhaites pas compliquer
la vie des sites (oui, pour certains mettre un mot de passe peut être
compliqué...).
Si ma demande est impossible et, bien je continuerais de chercher une
solution peut-être différente......
Merci pour tout.
@ +



..Cependant, je souhaiterais que les feuilles 2 et 3 soient uniquement
accessibles par l'intermédiaire de ma macro. Actuellement, les feuilles
peuvent être ouvertes en faisant Format, Feuilles, Afficher.


Pourquoi donc alors :
Sheets("Feuil2").Visible = True
Sheets("Feuil3").Visible = True

Il y a surement des trucs qui m'échappent..

AV















1 2