Microsoft 365 Ajouter bouton personne pour afficher feuilles

Aloha

XLDnaute Accro
Bonsoir,
Avec l'aide du forum j'ai su construire un système de compta individuelle avec regroupement des dépenses dans une feuille unique. Chaque fois qu'un nom est ajouté dans la liste une fiche est créée automatiquement.

Seulement, comme toutes les feuilles sont accessibles à tout le monde, je voudrais que, chaque fois qu'un nouveau nom apparaît dans la colonne H de la feuille "LISTES" un bouton avec le nom soit ajouté dans "MENU" (en-dessous du bouton inférieur existant déjà) et qu'à l'appui sur le bouton il faille entrer le mot de passe correspondant (colonne I de la feuille "LISTES"), que soit ensuite (si le mot de passe est correct) ôtée la protection du classeur, que la feuille en question soit affichée, et que le classeur soit reprotégé.
Lorsque la personne a fini de travailler dans sa feuille, elle la re-masque par l'appui sur un bouton:
* de préférence le même, mais je ne sais pas s'il est possible d'affecter deux actions différentes à un bouton: enclenché la première action et déclenché la deuxième action, à l'instar d'un vrai bouton ayant deux positions
* sinon un second bouton

J'ai réussi à faire afficher la feuille d'une personne déterminée, mais je ne sais pas comment faire pour généraliser: donc qu'un bouton soit ajouté pour chaque nouveau nom apparaissant dans la liste.

J'ai fabriqué aussi une petite macro servant à re-masquer la même feuille; là il manque donc aussi la généralisation.

Désavantage de ma façon de procéder: comme j'ai fait mes essais sur un fichier vierge et non le fichier original, il faut que j'arrive à intégrer le code dans le code existant déjà et ajoutant les noms et créant les feuilles par appui sur un bouton.

Merci d'avance pour toute aide
Aloha
 

Pièces jointes

  • Afficher feuille avec MDP.xlsm
    21.1 KB · Affichages: 16

patricktoulon

XLDnaute Barbatruc
re
bonjour
et qu'à l'appui sur le bouton il faille entrer le mot de passe correspondant (colonne I de la feuille "LISTES")
je sais pas si 36 mot de passe c'est possible je ne pense pas
et puis un bouton pour chaque nom c'est tout bonnement pas possible tout du moins c'est pas une bonne idée du tout

au regard de ce que j'ai vu du fichier tout du moins ce que j'ai pu voir car des accès a certaines choses ont été bloquées

bref je lui donne pas une très grande duré de vie a ce fichier ,avant que ça te prenne la tète a essayer de debuguer
Désavantage de ma façon de procéder: comme j'ai fait mes essais sur un fichier vierge et non le fichier original, il faut que j'arrive à intégrer le code dans le code existant déjà et ajoutant les noms et créant les feuilles par appui sur un bouton.
j'imagine le fichier original o_O:oops:
revois entièrement ta conception c'est pas bon du tout ;)
pas 36 mot de passe
pas 36 boutons
ne t amuse pas a bloquer ou masquer des outils excel tant que c'est pas fini tout du moins pour ceux qui vont travailler sur ton fichier pour t'aider

non sincèrement c'est pas la bonne trajectoire, arrete avant de faire un anévrisme ;)

part plutôt sur une liste déroulante
et débloque moi ce que tu a bloqué si tu veux que l'on t'aide, sans ca tu sera tout seul ;)
par exemple
pourquoi je ne peux pas ajouter de feuille manuellement
pourquoi le menu afficher/masquer des onglets reste bloqué même après avoir fait un reset sur toute les commandbars
si il y a du customUIi il aurait été sympa de prévenir
 

Aloha

XLDnaute Accro
Bonjour,
Merci pour ton message, même s'il n'est pas bien encourageant ;)
Rien n'est bloqué par mot de passe! Il suffit de déprotéger le classeur, sans mot de passe, et tout est accessible.
Je l'ai protégé parce que je voulais simuler la situation réelle, et sans protection du classeur le tout n'a pas de sens, et ma médiocre macro ne fonctionne pas s'il n'est pas protégé et si les feuilles ne sont pas masquées.

Il n'y aura pas 36 boutons mais une douzaine.
Et la conception part de la situation réelle qui est comme elle est. La seule chose que je veux ajouter c'est les boutons commandant, moyennant mot de passe, l'affichage et le masquage des feuilles.

Une chose dont je n'arrive pas à concevoir la réalisation: comment les boutons au bon endroit, c.-à-d. sous le dernier bouton, à la même distance que celle entre le dernier et l'avant-dernier (et tous les autres).
Bonne journée
Aloha
 
Dernière édition:

Aloha

XLDnaute Accro
A l'instant j'entrevois une autre possibilité, éventuellement plus aisée à réaliser:
il n'y a qu'un seul bouton, qui s'appelle p.ex. "Afficher feuilles". L'appui sur le bouton déclenche une macro demandant le mot de passe et c'est ce mot de passe qui détermine quelle feuille est affichée. Ce qui éviterait d'avoir "36" boutons; un seul suffirait.

Autre chose: pour remasquer la feuille je pourrais positionner un bouton sur la feuille-même portant p.ex. le texte "Enregistrer et masquer".
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil

[avis personnel à visée non polémique]
Mieux, si on veut.
Partant du principe qu'on peut ouvrir un classeur sans activer les macros.
Tout ce qui est "protection" par code VBA est une promotion déguisée pour les passoires (les vraies celles pour les pâtes) ;)
Il suffit d'un utilisateur "outrepasseur" pour que les autres utilisateurs sachent illico s'affranchir d'un classeur "coercitif"
[/avis personnel à visée non polémique]
 

Aloha

XLDnaute Accro
[avis personnel à visée non polémique]
Bravo!

Partant du principe qu'on peut ouvrir un classeur sans activer les macros.
Je ne comprends pas ce que tu veux dire par là. Dans quel but ouvrir le fichier les macros désactivées?

Dans le cas actuel la barrière du mot de passe suffit puisque personne n'a intérêt à vouloir faire des actions non permises comme p.ex. afficher la feuille d'une autre personne.

En ce moment je suis en train de chercher comment faire le lien entre le mot de passe que la personne saisit et son nom dans la liste, et partant sa feuille.
 

Staple1600

XLDnaute Barbatruc
Re

Je veux dire simplement qu'un classeur trop liberticide attire les curieux.
Donc implémenter un code VBA de "protection" est pour moi une dépense d’énergie pour une sécurité "illusoire"
Il suffit d'ouvrir le classeur sans activer les macros puis ALT+F11 et mise en commentaires des lignes VBA de protection.
NB: Le mot de passe n'est pas une barrière puisqu'on peut le lire dans le code VBA.

Bref, tout cela pour dire qu'Excel n'est pas un logiciel secure et qu'il est inadapté si il doit traiter des données sensibles.
Il est bon de le savoir avant d'user du neurone en vain.

PS: Comme je le disais, ce n'est là que mon avis.
Ce qu'on en fait ou pas ne me regarde plus.
 

Aloha

XLDnaute Accro
Tu as raison avec ce que tu écris, mais, je répète, dans le cas actuel cela suffit; il s'agit uniquement d'empêcher que des gens fassent des opérations dans une autre feuille par erreur.
Personne n'essayera de contourner le mot de passe et cela suffirait donc amplement.
 

Staple1600

XLDnaute Barbatruc
Re

1) Trust no one
2) No one is innocent

Je parle d'expérience, il y aura toujours un petit malin pour soulever le capot.
Si le nombre d'utilisateurs est restreint
1 utilisateur => un classeur avec une feuille unique la sienne
Puis pour l'admin, un code VBA qui va régulièrement cherche les infos dans N classeurs pour un update.
Comme cela plus de soucis de protection.
;)
 

Staple1600

XLDnaute Barbatruc
Re

=>Aloha
Juste histoire de (et pour attendre que mon minestrone refroidisse) ;)
Essaie ce bout de code "illustratif" sur un classeur vierge contenant 3 feuilles.
Lances le code suivant (3 fois de suite) en changeant à chaque fois de mot de passe
VB:
Sub MisterHide()
Dim i, Clés
Clés = Array(Array("toto", 1), Array("titi", 2), Array("tutu", 3))
For i = 1 To Sheets.Count
If Not Sheets(i).Visible Then Sheets(i).Visible = xlSheetVisible
Next
Mdp = InputBox("Mot de passe?")
For i = 1 To Sheets.Count
Sheets(i).Visible = Sheets(i).Index = Application.VLookup(Mdp, Clés, 2, 0)
Next
End Sub
C'est que j'appelle l'illusion de la protection puisqu'on peut lire les mots de passe (toto, titi et tutu) en clair dans le code VBA.

PS: C'est juste un petit code d'exemple (donc à ne pas réutiliser)
 

Aloha

XLDnaute Accro
Merci pour votre intérêt à mon petit problème. Ce qui fait que cela me gêne de vous contredire, mais comme je connais très bien la situation, ce n'est pas un problème: personne ne cherchera à afficher par malveillance la fiche d'un collègue, je vous demande de me croire cela tout simplement et de partir sur cette base.

La différence entre ce bout de code et le mien, est sa professionnalité, son élégance et sa perfection.
Ce qu'ils ont en commun (j'ai bien compris que ce n'est qu'un exemple) c'est qu'ils ne fonctionnent que pour 3 personnes, le tien avec les MDP, et une seule pour le mien, avec le nom.
S'il y avait moyen de modifier le tien de sorte qu'il prenne compte du mot de passe saisi et qu'il affiche la feuille correspondante ce serait parfait. Donc s'il y avait moyen de remplacer ces toto, titi et tutu par une variable représentant le mot de passe saisi et de faire le lien avec le nom de la liste.

Ce que je veux atteindre: lorsqu'une personne entre son MDP et qu'il est correct, VBA va voir dans la liste à quel nom correspond ce MDP et il affiche la feuille. C'est tout. Mais je ne sais pas comment m'y prendre.

1 utilisateur => un classeur avec une feuille unique la sienne
Ce n'est pas possible puisque je dois partir de la situation actuelle. Les gens sont habitués à cela et si je chamboule le tout ce sera le chaos. A noter que ce n'est pas l'occupation principale de ces personnes, mais une occupation très accessoire qu'elles doivent souvent accomplir dans le stress de leur occupation principale (domaine de l'éducation au sens large) ce qui fait qu'il arrive que les plus stressé(e)s se trompent de feuille.
 

Staple1600

XLDnaute Barbatruc
Re

Petite précision
Je me fiche de savoir si mon code est élégant ou pas.
En général, je poste un message pas forcément à l'attention du demandeur mais à tous les lecteurs du fil.
(Tant mieux si cela aide le demandeur, tant pis dans le cas contraire.
Il y aura sans doute un lecteur pour y trouver un intérêt ou pas)

Il y a moult exemples de gestion d'accès aux feuilles selon mots de passe.
Voir les discussions similaires et moteur de recherche du forum.

[avis personnel toujours à visée non polémique]
Si les personnes se trompent de feuille, alors c'est que l'ergonomie du classeur s'est éloignée de ce principe que j'affectionne.
le principe K.I.S.S
[avis personnel toujours à visée non polémique]
 

Staple1600

XLDnaute Barbatruc
Re

Un exemple de discussion (pris au hasard)

EDITION
Bonsoir patricktoulon
 
Dernière édition:

Discussions similaires

Réponses
4
Affichages
273

Statistiques des forums

Discussions
315 133
Messages
2 116 602
Membres
112 801
dernier inscrit
Yaz113