XL 2013 problème avec xlsheetveryhidden

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

yanthom

XLDnaute Nouveau
Salut, j'ai créé un code pour masquer les feuilles ou onglets de mon classeur en fonction du niveau d'accès des utilisateurs. Et j'y suis parvenu donc tout semblait ok jusqu'au moment où j'ai constaté que les feuilles sélectionnées étaient effectivement visibles, mais celles qui devaient rester masquer (veryhidden), en fait ne l'étaient pas. (hidden =>Click droit sur l'onglet =>Afficher...)
J'ai vérifié au niveau de l'éditeur de code VBA, dans les propriétés des feuilles masquées, et elles sont en xlsheetveryhidden🤔.(Ce qui ne réflète pas la réalité)
J'ai eu l'impression qu'on ne pouvait pas rendre visible certaines feuilles sans toutefois maintenir le niveau d'invisibilité des autres feuilles.
J'aimerais savoir si quelqu'un a déjà fait face ce problème, ou si possible pourrait m'apporter des éléments de réponse.
Je ne vois pas l'intérêt de masquer des feuilles si on peut facilement y avoir accès avec le click droit de la souris.
 
Solution
J'ai bien peur que vous ayez un souci avec votre XL :
20201201_141055.gif

Tentez un controle pour voir avec, Options/Ressources/Exécuter les diagnostics MS Office.
( Ca doit être différent sur 2013 mais ça doit ressembler )
C'est à n'y rien comprendre.
Tentez une confirmation de masquage, en modifiant votre boucle :
VB:
For k = 3 To 16
    SheetNm = Ws.Cells(1, k).Value
    If Ws.Cells(i, k).Value = "X" Then
        Sheets(SheetNm).Visible = xlSheetVisible
    Else
        Sheets(SheetNm).Visible = xlSheetVeryHidden
    End If
Next k
 
je pense que je l'avais également essayé, mais sans succès. Merci tout de même pour votre contribution, c'est sympa.
Je ne sais pas où ça beugge, mais le plus surprenant comme je l'ai dit plus tôt, c'est que les feuilles qui doivent être masquées en xlsheetveryhidden(2) une fois la macro éxécutée, le sont dans les propriétés de la feuille au niveau de l'éditeur VBA; mais pourtant elles sont accessibles en xlsheethidden(0) au niveau de la feuille excel.
Je vais peut être devoir reprendre mon fichier depuis le début, je ne sais pas encore... Je verrai demain
 
Bonjour,
Alors c'est plus grave que prévu. Application.Caller est une fonction déjà présente sur XL2007.
Testez cette PJ.
Appui sur Masquer : Toutes les feuilles sont masquées, aucune n'est visible par Afficher. ( hormis Entête )
Appui sur Visible : Toutes les feuilles sont visible A,B,C,D
Si ça, ça ne marche pas alors j'ai bien peur que vous ayez un pb en votre XL.
VB:
Sub Cacher()
For Each Sh In Worksheets
    If Sh.Name <> "Entete" Then
        Sheets(Sh.Name).Visible = xlSheetVeryHidden
    End If
Next Sh
End Sub
Sub Montrer()
For Each Sh In Worksheets
    Sheets(Sh.Name).Visible = xlSheetVisible
Next Sh
End Sub
 

Pièces jointes

Bonjour,
Alors c'est plus grave que prévu. Application.Caller est une fonction déjà présente sur XL2007.
Testez cette PJ.
Appui sur Masquer : Toutes les feuilles sont masquées, aucune n'est visible par Afficher. ( hormis Entête )
Appui sur Visible : Toutes les feuilles sont visible A,B,C,D
Si ça, ça ne marche pas alors j'ai bien peur que vous ayez un pb en votre XL.
VB:
Sub Cacher()
For Each Sh In Worksheets
    If Sh.Name <> "Entete" Then
        Sheets(Sh.Name).Visible = xlSheetVeryHidden
    End If
Next Sh
End Sub
Sub Montrer()
For Each Sh In Worksheets
    Sheets(Sh.Name).Visible = xlSheetVisible
Next Sh
End Sub
Pour votre code, pas de souci ça marche, il est simple et efficace.
Si je m'appuie sur votre exemple de "FeuilleInvisible2.xlsm", je souhaiterais dans mon fichier uniquement faire apparaitre certaines feuilles, par ex: A et B seulement et que les autres, à savoir C et D restent en xlsheetveryhidden. Mais au lieu de celà, les feuilles masquées se retrouvent en xlsheethidden.
Voilà principalement le problème, et c'est à ce niveau que je suis perdu.🤷‍♂️
 
Alors allons y au plus simple, step by step :
Dans cette PJ, vous mettez un x pour toutes les feuilles que vous voulez voir puis vous cliquez sur le bouton.
Est ce que ça marche ?
VB:
Sub Cacher()
For Each Sh In Worksheets
    If Sh.Name <> "Entete" Then
        Sheets(Sh.Name).Visible = xlSheetVeryHidden
    End If
Next Sh
If [G6] <> "" Then Sheets("A").Visible = xlSheetVisible
If [G7] <> "" Then Sheets("B").Visible = xlSheetVisible
If [G8] <> "" Then Sheets("C").Visible = xlSheetVisible
If [G9] <> "" Then Sheets("D").Visible = xlSheetVisible
End Sub
 

Pièces jointes

Alors allons y au plus simple, step by step :
Dans cette PJ, vous mettez un x pour toutes les feuilles que vous voulez voir puis vous cliquez sur le bouton.
Est ce que ça marche ?
VB:
Sub Cacher()
For Each Sh In Worksheets
    If Sh.Name <> "Entete" Then
        Sheets(Sh.Name).Visible = xlSheetVeryHidden
    End If
Next Sh
If [G6] <> "" Then Sheets("A").Visible = xlSheetVisible
If [G7] <> "" Then Sheets("B").Visible = xlSheetVisible
If [G8] <> "" Then Sheets("C").Visible = xlSheetVisible
If [G9] <> "" Then Sheets("D").Visible = xlSheetVisible
End Sub
Une fois de plus, votre code fonctionne correctement. J'ai juste remarqué par exemple que lorsqu'on coche toutes les cases, toutes les feuilles n'apparaissent pas, mais bon...
Je pense que mon fichier ou peut être mon XL2013 doit avoir un problème, que sais je....
 
Salut,j'ai malheureusement du reprendre mon code du début à la fin, mais au moins cela m'a permis de trouver ce qui créait un beug dans l'éxécution de l'une de mes macros.
Comme quoi certaines macros ne doivent pas fonctionner au même moment au risque de créer des pertubations ou faire planter l'une d'entre elles.
J'ai créé une macro qui faisait défiler un texte de droite à gauche (Un peu comme un panneau publicitaire), et apparemment comme ça défilait chaque fois que la feuille était active, ça avait un impact sur la macro qui rend les feuilles visibles.
En bref le problème est résolu, et merci à toutes les personnes qui ont bien voulu contribuer.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
15
Affichages
2 K
Retour