Empecher affichage onglets excel VBA

Résolu
scribetout - 2 mars 2013 à 17:49
 scribetout - 5 mars 2013 à 13:19
Bonjour,

Avec les codes ci-dessous, j'affiche et masque les onglets de mon fichier
Sub Option_masquer_onglet()
 Option_cacher_onglet Macro
    Sheets("Menu").Select
    ActiveWindow.DisplayWorkbookTabs = False
End Sub
Sub Option_afficher_onglet()
    Sheets("Menu").Select
    ActiveWindow.DisplayWorkbookTabs = True
End Sub


Je voudrais en fait, empêcher les utilisateurs de faire apparaître les onglets via "OptionExcel". la navigation se fait via la feuille "Menu" par boutons. Il est possible que l'utilisateur fasse cette action en étant sur n'importe quelles feuilles, à la fin de sa manipulation il faudrait que les onglets se masquent et que la feuille "Menu" s'active; c'est ce que fait la 1ère macro. Je pense que je dois mettre du code dans Thisworkbook, mais quoi au juste.

Je vous remercie.

Bonne soirée!

38 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
5 mars 2013 à 12:13
MPi t'as donné la solution:

Private Sub Workbook_Open()
 Dim feuille As Variant
Application.ScreenUpdating = False
    For Each feuille In Worksheets
       If feuille.Name <> "Menu" Then
       Sheets("Menu").Activate
       feuille.Visible = xlVeryHidden
End If
    Next
Application.ScreenUpdating = True
End Sub


Un problème subsiste: naviguer dans les feuille. Pour cela il faut rendre la feuille visible comme ceci:

Private Sub CommandButton1_Click()
Sheets("Feuil1").Visible = True '(à adapter)
Sheets("Feuil1").Select
End Sub


Et pour revenir au Menu cacher la feuille. Donc dans la feuille1 (à adapter):

Private Sub CommandButton1_Click()
Sheets("Feuil1").Visible = False
Sheets("Menu").Select
End Sub


Voilà!!!!!!!!
@+ Le Pivert
2
jordane45 Messages postés 38136 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 avril 2024 344
2 mars 2013 à 21:16
bonjour.
il suffirait de proteger le classeur (pas le contenu, juste la structure)

Cordialement,
Jordane
_____________________________________________________
Règles du forum à lire avant de poster une question : ICI
0
Bonsoir Jordane45,

je te remercie mais ta solution ne donne pas satisfaction.
Voilà ce que j'ai fait: Revision -->Protéger le classeur--> Protéger la structure et les fenêtres --> monpass.

Mais quand je vais dans option excel et coche la case afficher onglets ces derniers apparaissent et c'est ce que je veux éviter. Il faut qu'un onglet soit visible.

Merci quand même pour ta participation.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
2 mars 2013 à 23:41
Bonjour,
je ne sais pas vers quoi et pourquoi vous allez ainsi .
Je n'ai pas voulu intervenir car je sais par contre ce qu'il y a "derrière les décors" (l'autre discussion) et la stratégie choisie est assez "boiteuse".
Mais bon ...
On veut quoi ? faire en sorte d'empêcher la visualisation de la feuille "Menu" ?
on ne va alors pas s'embarrasser. Jouons bêtement et simplement à l'"empêcheur de tourner en rond"===>>
dans le module de la feuille "Menu" ===>>
Private Sub Worksheet_Activate()
 ActiveSheet.Visible = False ' ou true lorsqu'on veut la montrer, selon l'utilisateur.
End Sub

Je vous laisse continuer.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jordane45 Messages postés 38136 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 avril 2024 344
3 mars 2013 à 00:24
Sinon regardes là :
XlSheetHidden

Cordialement,
Jordane
_____________________________________________________
Règles du forum à lire avant de poster une question : ICI
0
Bonjour Jordane45,

je te remercie pour ton lien, avide d'apprentissage je prends tout.
je te remercie beaucoup.

Bonne Journée!
0
Bonjour,

je sais par contre ce qu'il y a "derrière les décors" (l'autre discussion) et la stratégie choisie est assez "boiteuse".


Monsieur Ucfoutu, je ne comprends vraiment pas ce que vous insinuez. Il n'y a ni décors ni stratégie. Je suis un amateur débutant en VBA, mais bon...

Depuis ma prime jeunesse, on m'a inculqué qu'une question bête n'existait pas. Vous avez le droit de rire derrière votre écran de nos questions "bêtes", mais respectez un peu notre ignorance de votre domaine.

je préfère qu'on ignore mes discussions que de recevoir des messages stériles de contenu. Du genre: as-tu consulté au moins l'aide? et j'en passe. Je vous assure que j'en ai lu des discussions.

Je consulte votre forum depuis de long date et ne me suis inscrit que depuis peu. Car je travaillais et n'avais pas beaucoup de temps.

Je ne sais ce qu'il en est pour les autres, mais personnellement c'est quand je sèche vraiment que je fais appel à une aide.

Je sais que mes codes ne sont pas "orthodoxes", mais m'en contente car ils donnent les résultats attendus. Très souvent, je récupère des codes sur le net et essaie de le adapter à mes besoins (pratique que les intervenants de ce forum tiennent en horreurs), ou bien j'utilise l'enregistreur de macros pour trouver une solution, analyser le code et le simplifier. Je pense que la débrouillardise n'est pas proscrite pour pondre un bout de code pour se faire plaisir.

Nous les amateurs, dés qu'on parvient à faire un petit quelque chose, on est super heureux. Enfin, c'est mon cas. Enfantin, n'est-ce pas? Mais c'est comme ça.

Vous pensez peut-être que je suis susceptible. Loin de là, tout simplement ça m'irrite qu'on m'envoie paître après avoir passé des heures, des journées et nuits blanches de recherches infructueuses. Et, qu'on vienne me dire: as-tu fait ceci, cela... Qu'on ait pas compris mes attentes OK! Mais qu'on ne se moque pas de ceux qui ne connaissent pas.

Bien souvent, je pense que ces gens qui connaissent, sont prétentieux et avare de leur savoir. Vu mon âge, je sais que lorsque, je partirai je n'emporterai rien avec moi, ni bien ni savoir.

Quoiqu'il en soit, je vous remercie. je pense que je suis trompé d'adresse et m'en vais rejoindre les forums amateurs.

Je rends un hommage à Jacques Boisgontier pour son fabuleux travail. Je me suis inspiré de ses fichiers et ses codes pour réaliser tous les formulaires.
Tapez le texte de l'url ici.

sans préjugés et sans rancunes.

Cordialement,

Scribetout
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
3 mars 2013 à 10:35
Comme tu voudras.
Quand je parlais de ce qu'il y avait "derrière les décors", je voulais dire (et c'était pour moi clair) que je savais (à travers l'autre discussion) pourquoi on cherchait à cacher une feuille.
Il se trouve que cela ne servira à rien (voilà la raison de l'expression "stratégie assez boiteuse") et sera rapidement contourné par le premier petit malin venu qui voudra (et pourra donc) découvrir (puisque en clair) le mot de passe concernant un utilisateur.
Pour parvenir à une stratégie "solide", c'était toute un ensemble qu'il fallait "construire". Et pour construire cet ensemble, il fallait y aller par étape, comprendre chaque étape, puis assembler le tout (toutes les étapes) en fonction des besoins de l'appli.
Un autre chemin que ce pas à pas a été choisi =>> je me suis donc retiré.
Mais bon ...
Je veux bien aider, mais je n'aident que ceux qui veulent bien commencer par s'aider eux-mêmes. Et oui : je les invite bien évidemment, chaque fois que l'aide VBA est claire, à la lire d'abord !
Bonne chance


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
Bonjour,

Comme nous disait, il y a de cela des années, notre prof de mathématiques appliquées: "mon père est nul en bricolage, il n'est même foutu de planter un clou." On avait bien rigolé et a continué par:" mais ça ne l'a pas empêché d'être Docteur en physique nucléaire."

On est donc tous différents, à chacun son expérience pour trouver la bonne stratégie. à chacun son niveau de raisonnement et de compréhension. Les lumières ça existe, les nuls aussi. J'étais à côté de la plaque, j'en prends note.

Quand je parlais de ce qu'il y avait "derrière les décors", je voulais dire (et c'était pour moi clair) que je savais (à travers l'autre discussion) pourquoi on cherchait à cacher une feuille.

En fait, ce n'est pas une seule feuille que je veux masquer mais ne laisser qu'une seule visible sur laquelle se trouvent les 9 boutons (3 niveaux, pour chaque niveau 3 boutons). Je voulais trouver une astuce, pour qu'aucun petit malin ne puisse afficher les onglets en passant par les options avancées d'Excel.

Merci.

Bon Dimanche!
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
3 mars 2013 à 11:41
Je voulais trouver une astuce, pour qu'aucun petit malin ne puisse afficher les onglets en passant par les options avancées d'Excel.

Les protections simples ne permettent que de contrecarrer les tentatives des innocents, petits malins ou non !
Les autres (malins et avertis) sauront (s'il y a un intérêt à le faire) reconstituer totalement ton classeur. Si ce qui doit y rester inconnu d'eux y est en clair, ils le reconstitueront en clair également. Ces mêmes malins-là auront même fait un outil prêt à être utilisé pour tout classeur.
Voilà.
Si tu le permets, maintenant : je quitte totalement cette discussion qui a pour seul effet de me retarder pour ma pêche et mes travaux divers de bricolage (et même de petits exercices mathématiques).
Bonne chance.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
merci, bonne pêche.
0
jordane45 Messages postés 38136 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 avril 2024 344
3 mars 2013 à 14:17
:-)
pense a mettre le sujet en resolu.


Cordialement,
Jordane
_____________________________________________________
Règles du forum à lire avant de poster une question : ICI
0
Désolé mais ce n'est encore résolu. Je cherche toujours une solution. Ceux qui ont quitté définitivement cette discussion sont libres et je ne leur tiens pas rigueur.

étant débutant, quand je cache n'importe quelle feuille de mon classeur mes codes bug. Donc, en passant pas les options d'excel, je décoche l'affichage des onglets et ça fonctionne bien. Je voudrais juste empêcher les utilisateurs à cocher cette case ou la décocher dés qu'on revient sur le fichier (retour sur la feuille "Menu") par code VBA.
sheets("Menu").activate 'ou 
sheets("Menu").select


Au fait, comment faire pour mettre le sujet résolu. Merci de me l'avoir rappelé.

Cordialement,
Scribetout
0
jordane45 Messages postés 38136 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 avril 2024 344
3 mars 2013 à 19:48
j'ai regardé et il ne semble pas possible d'empecher le réaffichage des onglets.

quand je cache n'importe quelle feuille de mon classeur mes codes bug.

C'est normal !
Si une feuille est cachée, on ne peut pas lui demander de la selectionner....
Avant de faire un sheets("Menu").activate (ou select) il faut la rendre visible.

Pour en revenir aux onglets, tu pourrais ruser...
Tu modifie " l'apparence " de ton classeur (pas excel.. mais bien ton classeur) en argrandissant suffisement celui ci pour que les onglets "sortent" de l'écran puis tu protège ton classeur, ca devrait le faire





Cordialement,
Jordane
_____________________________________________________
Règles du forum à lire avant de poster une question : ICI
0
jordane45 Messages postés 38136 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 avril 2024 344
3 mars 2013 à 20:00
Enfin sinon Ucfoutu a raison..
Excel, niveau sécurité ne vaut rien !

Que ce soit la protection des feuilles/classeurs ou celle de l'éditeur de macro, il ne faut que quelques secondes pour les faire sauter aux personnes (avec quelques connaissances informatiques) sachant chercher un peu sur internet...

en même temps... 90% des personnes que j'ai pu croiser dans mon entreprise ou mes amis ne savent même pas faire une somme dans Excel autrement qu'avec des '+'... Mouarffff...... alors.. déprotéger un classeur... pfffff... ça leur prendra 10 ans...





Cordialement,
Jordane
_____________________________________________________
Règles du forum à lire avant de poster une question : ICI
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
3 mars 2013 à 21:11
Salut, jordane45
Même pas la peine de "déprotéger" ...
Et si les données sensibles sont en clair, ma foi ...
Et si elles ne sont pas sensibles : personne ne cherchera à les connaître (hé oui !).
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
3 mars 2013 à 21:17
Mais j'ai "cassé" ma promesse de ne plus intervenir. Tant pis ===>> revenons à nos moutons === >> si l'on ne veut pas ( et qu'on s'en contente ) qu'une feuille puisse être affichée "de manière normale" hein ...(et rien d'autre que cela) j'ai dit plus haut comment ... (mais uniquement de manière "normale", pas d'une autre manière bien plus vicieuse).
Allez ! Je vous laisse maintenant (sommeil).


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
Utilisateur anonyme
3 mars 2013 à 21:34
Bonjour,

Et puis avec les fichiers xlsx, n'importe qui peut les ouvrir et les utiliser avec à peu près n'importe quel programme et le SDK Openxml disponible sur le site de MS.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
3 mars 2013 à 21:40
Bonjour, cmarcotte,
Ben oui.
Et entre autres ...
Mais même pas la peine d'ouvrir avec Excel, d'ailleurs, pour y lire les données en clair.



________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
4 mars 2013 à 08:26
Bon.
Mot mot du lundi matin :
J'ai, il y a une trentaine d'années, dû faire intervenir un haut responsable pour éviter l'énorme dépense que quelqu'un voulait engager pour mettre une porte blindée avec serrure de sécurité sur une cloison en .... Gyproc !
Lorsque je faisais remarquer qu'il suffisait de ne pas passer par la porte (un bon coup de pied dans la cloison suffisait) on me répondait que certes, mais que cela se verrait ensuite. Ah bon ? ===>> un simple compteur scellé d'ouverture d'une simple porte en contre-plaqué permettait la même constatation de "viol", non ?
Il va de soi que le haut responsable a interdit cette dépense idiote.
Amitiés à tous.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
0
Rejoignez-nous