XL 2010 Macro pour mot de passe à l'ouverture d'Excel

Orson83

XLDnaute Impliqué
Bonsoir le forum,
Je rencontre un problème pour protéger l'ouverture de mon fichier Excel. En effet j'aimerai qu'à l'ouverture de mon fichier, Excel me demande un mot de passe avant de montrer les onglets. J'ai essayé avec les options présentes dans Excel mais le problème c'est qu'elles permettent soit la modification du mot de passe, soit carrément la suppression.
Je me demandais s'il était possible de faire cela avec une macro qui ouvrirait une message box pour saisir un mot de passe qui serait déjà renseigné dans le code et qui serait unique. J'ai fouillé Internet dans tous les sens mais je n'ai pas trouvé de macro exploitable.
Merci pour votre aide.
PS : ce mot de passe serait différent de celui qui protège déjà mon classeur et mes feuilles.
 
Solution
Ci joint une PJ, seules les feuilles paires sont visibles, et aucune n'est accessible par le menu afficher.Regarde la pièce jointe 1094681
Je ne comprends pas pourquoi elles ne seraient pas toutes affichées (sauf la A mais ce problème est résolu).
Je les ai toutes passées en xlVisible dans les propriétés VBE, puis masqué la feuille 2 par le clic droit dans l'onglet, enregistré XL et à la réouverture d'Excel impossible de la ré-afficher au clic droit dans l'onglet.
Je pense vous avoir suffisamment sollicité et pour cela je vous dis un grand MERCI.
Très belle soirée.
Bien amicalement.
François

Orson83

XLDnaute Impliqué
Re

Je confirme que le fichier du post#56 fonctionne.
(testé sur Excel 2003)
Par contre le mot de passe du projet VBA n'est plus TESTVBA.
(mais c'est secondaire...)
Tu as bien contrôlé l'affichage des feuilles au clic droit dans un onglet ?
La feuille nommé A doit être non visible (veryhidden) et toutes les autres feuilles visibles, ce qui n'est pas le cas à la réouverture d'Excel si certaines étaient masquées.
 

Patrice33740

XLDnaute Impliqué
Les sécurités d'Excel sont parfois contradictoires, depuis Excel 2013 le mode protégé, protège le PC des fichiers douteux, par exemple ceux qui proviennent d'Internet.
Ça n'interdit pas l'exécution des macros mais ça limite les actions que ces macros peuvent faire sur le fichier.

Cela ne fait que confirmer l’extrême fragilité et l'utopie de la protection par macro.

Ceci dit, si tu veux tester les fichiers (ils fonctionnent tous depuis le début), il faut les exécuter dans un contexte qui autorise l'exécution des macros sans restriction. Au niveau des options de sécurité des macro, depuis l'apparition du mode protégé, il manque une précision importante : ces choix ne concernent que les fichiers situés dans un emplacement de confiance.

Je te déconseille très vivement de désactiver le mode protégé.
Le plus simple est définir un répertoire de confiance dans lequel tu enregistres les fichiers avec macro :
Options Excel / Centre de gestion de confidentialité / Paramètres du centre de confidentialité / Emplacements approuvés

EDIT @Staple1600 : avec Excel 2003 tu n'auras pas son problème.
 
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Sorry. Ca marche et la feuille A est veryhidden.
20210207_205314.gif

Je commence à douter de votre XL.
 

Orson83

XLDnaute Impliqué
Sorry. Ca marche et la feuille A est veryhidden.Regarde la pièce jointe 1094678
Je commence à douter de votre XL.
Vous avez bien contrôlé l'affichage des feuilles au clic droit dans un onglet ?
La feuille nommé A doit être non visible (veryhidden) et toutes les autres feuilles visibles, ce qui n'est pas le cas à la réouverture d'Excel si certaines étaient masquées auparavant.
Cela est confirmé dans votre vidéo car la feuille 2 n'est plus visible et à priori plus affichable au clic droit dans l'onglet.
Inversement pour la feuille A qui ne sera pas xlVeryHidden avec le clic droit dans un onglet.
Merci de confirmer si cela est vrai. Le cas contraire, je mettrai en cause ma version d'Excel et certainement pas l'excellent travail qui vous avez réalisé.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
"A" n'est pas VeryHidden car je ne l'ai pas mis en VeryHidden.
( non visible n'est pas VeryHidden mais Hidden seulement )
Par pitié, lisez le code : Sheets("A").Visible = False , en ligne 19.
Les feuilles masquées sont celles qui l'ont été à la fermeture.
Si vous voulez, changez ce False par xlSheetVeryHidden.
 

Orson83

XLDnaute Impliqué
"A" n'est pas VeryHidden car je ne l'ai pas mis en VeryHidden.
( non visible n'est pas VeryHidden mais Hidden seulement )
Par pitié, lisez le code : Sheets("A").Visible = False , en ligne 19.
Les feuilles masquées sont celles qui l'ont été à la fermeture.
Si vous voulez, changez ce False par xlSheetVeryHidden.
Désolé. J'ai modifié la ligne 19 avec xlVeryHidden et effectivement la feuille A n'est plus visible depuis le clic droit dans l'onglet (ce problème est résolu).
Je ne comprends pas pourquoi la feuille 2 n'est plus accessible ? (au clic droit dans l'onglet)
 

Orson83

XLDnaute Impliqué
Ci joint une PJ, seules les feuilles paires sont visibles, et aucune n'est accessible par le menu afficher.Regarde la pièce jointe 1094681
Je ne comprends pas pourquoi elles ne seraient pas toutes affichées (sauf la A mais ce problème est résolu).
Je les ai toutes passées en xlVisible dans les propriétés VBE, puis masqué la feuille 2 par le clic droit dans l'onglet, enregistré XL et à la réouverture d'Excel impossible de la ré-afficher au clic droit dans l'onglet.
Je pense vous avoir suffisamment sollicité et pour cela je vous dis un grand MERCI.
Très belle soirée.
Bien amicalement.
François
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Lisez le code plutôt que vous posez des questions métaphyqiues.
C'est ainsi fait dans le code. Je n'avais aucune demande contraire.
Ligne 32, la table est faite pour que 0 visible, 1 VeryHidden.
si vous voulez remettre exactement les feuilles dans l'état alors il faut gérer trois états dans la table : Visible, Hidden, VeryHidden. Et réutiliser ces trois états dans la macro d'ouverture.
 

Discussions similaires

Réponses
5
Affichages
710
Compte Supprimé 979
C

Statistiques des forums

Discussions
315 091
Messages
2 116 111
Membres
112 662
dernier inscrit
lou75