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.
@ +

10 réponses

1 2
Avatar
PMO
Bonjour,

Une piste mais en VBA

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

Sub demasque()
Sheets("Feuil1").Visible = xlSheetVisible
End Sub
'**********

Cordialement.
--
PMO
Patrick Morange



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.
@ +


Avatar
PhilippeD1
Bonjour PMO,

merci de m'avoir répondu;
en faisant comme tu me l'as indiqué, la feuille est cachée et par
conséquence ma macro ne trouve plus cette feuille si bien cachée.....
Il faudrait que la feuille soit cachée comme avec ton code VBA mais que ma
macro puisse retrouver cette feuille.
Cette feuille doit être cachée pour les utilisateurs mais trouvable par ma
macro...voila toute la complexité du problème.


Bonjour,

Une piste mais en VBA

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

Sub demasque()
Sheets("Feuil1").Visible = xlSheetVisible
End Sub
'**********

Cordialement.
--
PMO
Patrick Morange



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.
@ +




Avatar
AV
Il faudrait que la feuille soit cachée comme avec ton code VBA mais que ma
macro puisse retrouver cette feuille.


Mis à part sélectionner la feuille ou la supprimer ou...tu peux faire plein de
trucs:
Exemple :
Sheets("Feuil1").Range("A1") = 100
Qu'est-ce que tu n'arrives pas faire (par macro) avec la feuille
xlSheetVeryHidden ?

AV

Avatar
PhilippeD1
Bonjour AV,

sur ma feuille 1 j'ai une case à cocher et, lorsque l'utilisateur la coche,
la macro ci-dessous est lancée :
Private Sub CheckBox1_Click()
Sheets("Feuil2").Visible = True
Sheets("Feuil3").Visible = True
Sheets("Feuil1").Select
ActiveWindow.SelectedSheets.Visible = False
End Sub

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.
Donc, en ne les faisant pas apparaître dans la fenêtre...
Ai-je été assez explicite; est-ce possible ???
Merci pour votre aide.
@ +



Il faudrait que la feuille soit cachée comme avec ton code VBA mais que ma
macro puisse retrouver cette feuille.


Mis à part sélectionner la feuille ou la supprimer ou...tu peux faire plein de
trucs:
Exemple :
Sheets("Feuil1").Range("A1") = 100
Qu'est-ce que tu n'arrives pas faire (par macro) avec la feuille
xlSheetVeryHidden ?

AV






Avatar
AV
..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
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
isabelle
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 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
isabelle
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
PMO
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