Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Feuille non affichée considérée visible

3 réponses
Avatar
rmill...
Bonjour,

Je me demande si vous avez déjÍ  vu cela et si vous auriez une suggestion.

For Each XlSht In Workbooks(2).Sheets
If XlSht.Visible And Not XlSht.Cells.Find("*") Is Nothing Then
Var_XlShtName = XlSht.Name

J'utilise ce code ... qui a toujours fonctionné ... afin d'ajouter dans la file d'attente de PDF Creator seulement les feuilles visibles dans un classeur.

Dans un classeur ... même si la feuille n'est pas affichée ... ce code la considère comme visible. Alors ça plante au moment de l'imprimer.

Lorsque je vais dans VBA je vois l'objet et je clique sur celui-ci avec le bouton droit et je ne peux Afficher l'objet. Cette option n'est pas disponible pour cette feuille mais oui pour les autres.

Par contre si avec du code VBA ... Feuil1.name.Visible = true ... elle s'affiche ensuite. Je la masque Í  nouveau et ... le code en haut la considère toujours comme visible.

Dans une telle situation je souhaite retourner la feuille comme masquée. Auriez-vous une suggestion? Merci Í  l'avance.

3 réponses

Avatar
MichD
Le 01/09/21 Í  17:18, a écrit :
Bonjour,
Je me demande si vous avez déjÍ  vu cela et si vous auriez une suggestion.
For Each XlSht In Workbooks(2).Sheets
If XlSht.Visible And Not XlSht.Cells.Find("*") Is Nothing Then
Var_XlShtName = XlSht.Name
J'utilise ce code ... qui a toujours fonctionné ... afin d'ajouter dans la file d'attente de PDF Creator seulement les feuilles visibles dans un classeur.
Dans un classeur ... même si la feuille n'est pas affichée ... ce code la considère comme visible. Alors ça plante au moment de l'imprimer.
Lorsque je vais dans VBA je vois l'objet et je clique sur celui-ci avec le bouton droit et je ne peux Afficher l'objet. Cette option n'est pas disponible pour cette feuille mais oui pour les autres.
Par contre si avec du code VBA ... Feuil1.name.Visible = true ... elle s'affiche ensuite. Je la masque Í  nouveau et ... le code en haut la considère toujours comme visible.
Dans une telle situation je souhaite retourner la feuille comme masquée. Auriez-vous une suggestion? Merci Í  l'avance.

Bonjour,
Tu as probablement masqué la feuille avec une ligne de code comme celle-ci.
Worksheets("Feuil1").Visible = xlSheetVeryHidden
au lieu de :
Worksheets("Feuil1").Visible = xlSheetHidden
Dans les 2 cas, la feuille n'est pas visible Í  l'usager, mais si tu
emploies "xlSheetVeryHidden", l'usager ne peut pas par l'interface de la
feuille de calcul la rendre visible. Pour que l'usager connaisse
l'existence de cette feuille, il doit obligatoirement ouvrir la fenêtre
de l'éditeur de code VBA. Au lieu de la ligne de commande, on peut aussi
utiliser les propriétés de la feuille par : Menu développeur /
propriétés et en faisant un clic sur la feuille, on peut apercevoir
cette propriété en utilisant le bouton Í  l'extrémité de la ligne "Visible".
Par contre si tu utilises la ligne de code
Worksheets("Feuil1").Visible = xlSheetHidden
ou la propriété xlSheetHidden au même endroit que l'autre, ton code
devait fonctionner correctement.
MichD
Avatar
MichD
Le 02/09/21 Í  06:38, MichD a écrit :
Le 01/09/21 Í  17:18, a écrit :
Bonjour,
Je me demande si vous avez déjÍ  vu cela et si vous auriez une suggestion.
For Each XlSht In Workbooks(2).Sheets
If XlSht.Visible And Not XlSht.Cells.Find("*") Is Nothing Then
Var_XlShtName = XlSht.Name
J'utilise ce code ... qui a toujours fonctionné ... afin d'ajouter
dans la file d'attente de PDF Creator seulement les feuilles visibles
dans un classeur.
Dans un classeur ... même si la feuille n'est pas affichée ... ce code
la considère comme visible. Alors ça plante au moment de l'imprimer.
Lorsque je vais dans VBA je vois l'objet et je clique sur celui-ci
avec le bouton droit et je ne peux Afficher l'objet. Cette option
n'est pas disponible pour cette feuille mais oui pour les autres.
Par contre si avec du code VBA ... Feuil1.name.Visible = true ... elle
s'affiche ensuite. Je la masque Í  nouveau et ... le code en haut la
considère toujours comme visible.
Dans une telle situation je souhaite retourner la feuille comme
masquée. Auriez-vous une suggestion? Merci Í  l'avance.

Bonjour,
Tu as probablement masqué la feuille avec une ligne de code comme celle-ci.
Worksheets("Feuil1").Visible = xlSheetVeryHidden
au lieu de :
Worksheets("Feuil1").Visible = xlSheetHidden
Dans les 2 cas, la feuille n'est pas visible Í  l'usager, mais si tu
emploies "xlSheetVeryHidden", l'usager ne peut pas par l'interface de la
feuille de calcul la rendre visible. Pour que l'usager connaisse
l'existence de cette feuille, il doit obligatoirement ouvrir la fenêtre
de l'éditeur de code VBA. Au lieu de la ligne de commande, on peut aussi
utiliser les propriétés de la feuille par : Menu développeur /
propriétés et en faisant un clic sur la feuille, on peut apercevoir
cette propriété en utilisant le bouton Í  l'extrémité de la ligne "Visible".
Par contre si tu utilises la ligne de code
Worksheets("Feuil1").Visible = xlSheetHidden
ou la propriété xlSheetHidden au même endroit que l'autre, ton code
devait fonctionner correctement.
MichD

Pour simplifier la situation :
xlSheetVeryHidden = MASQUE la feuille, non accessible par l'usager par
l'interface de la feuille de calcul, impossible de la rendre visible
sans l'interface VBA.
xlSheetHidden : Rend la feuille non visible, mais elle est accessible
par l'usager s'il le désire.
Bien que ces 2 propriétés rendent la feuille non visible, il y a une
différence plus que sémantique Í  propos de rendre la la feuille non visible.
En utilisant la propriété "xlSheetHidden", pour rendre non visible la
feuille de calcul, ta procédure fonctionnera correctement.
MichD
Avatar
rmill...
Bonjour,
Désolé de revenir que maintenant et merci pour la réponse.
En fait ce n'est pas moi qui avait masqué la feuille dans l'autre classeur. Cela provient d'une opération quelconque d'un logiciel de tenue de livres.
J'ai trouvé. C'est que ... j'ai dÍ» modifié le code ...
If XlSht.Visible And Not XlSht.Cells.Find("*") Is Nothing Then
pour
If XlSht.Visible = True And Not XlSht.Cells.Find("*") Is Nothing Then
Alors je crois bien que quel que soit la façon dont la feuille a été masquée ... alors que le code est plus précis. Car sans le True ... je soupçonne que la valeur attribuée dans le code était Í  False.
Merci encore.