J'ai créé un menu (avec des commandes qui déclenchent des macros) personnalisé au niveau de la barre de menu entre "Fenêtre" et le"?". Celui-ci apparaît donc, comme les autres, à l'ouverture d'un classeur. J'ai deux questions à vous poser :
1) Est-il possible que ce menu n'apparaisse qu'à l'ouverture d'un fichier spécifique ?
2) Dans le cas contraire, est-il possible d'affecter un mot de passe lors du click (sur ledit menu) afin de limiter l'accès à certains utilisateurs sur ce menu ?
D'avance je vous remercie pour vos propositions de réponses.
Je suis pas sur (je ne sais pas si c'est comme pour les barres d'outils)
pour attacher un menu à un classeur
(Outils/Personnaliser/Barre d'outils/Attacher)
Essaie cette manip et renvoie ton fichier.
PS: Est-ce que ton menu apparait quelque soit le classeur ouvert?
edit: je viens de créer un menu personnalisé manuellement
en fait il n'est pas lié au classeur dans lequel tu le crées.
Il apparait à l'ouverture d'Excel (sans fichier ouvert)
Sub PasDeCroix(USF As UserForm)
Dim hWnd As Long
hWnd = FindWindowA("Thunder" & IIf(Application.Version Like "8*", _
"X", "D") & "Frame", USF.Caption)
SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) And &HFFF7FFFF
End Sub
Re,
Il n'y a aucun menu personnalisé dans ton fichier, ni de macro (utile).
Tu peux tester cette méthode simple :
Code:
Sub test11()
'***Cette étape n'est pas indispensable, car normaleemnt ton code pour le mot de passe doit être intégré à la macro appelée par ton bouton.
For i =1 to CommandBars("Personnalisé 1").Controls.Count
Set myCtrl = CommandBars("Personnalisé 1").Controls(i)
With myCtrl
.OnAction = "QuelBouton"
End With
Next
End Sub
Sub QuelBouton()
'***Ce bout de macro doit être appelé par chaque bouton auquel tu veux affecter un mot de passe
If mdp = "a" Then Application.CommandBars("Personnalisé 1").Enabled = True: Exit Sub
mdp = InputBox("Saisir le mot de passe pour le mode administrateur")
If Not mdp = "a" Then
Application.CommandBars("Personnalisé 1").Enabled = False
Else
Application.CommandBars("Personnalisé 1").Enabled = True
End If
...
Ta macro liée à ton bouton
...
End Sub
C'est d'ailleurs, de mémoire, ce que doit faire la 1ère macro d'Excel_lent via un module de classe. Mais sans un exemple réel de ce que tu veux faire : dur !
C’est à ce moment que j’ai découvert le fichier joint de l’excellent @+Thierry. Au stade d’apprentissage auquel je suis, je n’essaye pas de comprendre tout d’un coup. J’ai donc simplement transmis le savoir faire d’une autre personne. En un mot comme en cent, je ne sais pas répondre à ta question. Excuse moi mais j’ai tant à apprendre que je n’ai pas le temps de chercher sur la toile comme tu le fais. Si l’occasion se présentait, je n’hésiterais à profiter des explications qu’on te fournirait et que tu transmettrais j’en suis sûr. [FONT="]@+[/FONT]
Bonjour Staple1600, Spitnolan08, Excel_lent, le forum,
Je ne comprends pas pourquoi le menu n'apparait pas : je tente à nouveau. Chez moi je vois bien le menu et tout le reste (il faut l'enregistrer pour pouvoir tout voir)...!!! Etrange !
"Ce menu tu l'as créé manuellement (pas en VBA)?"
Manuellement
"PS: Est-ce que ton menu apparait quelque soit le classeur ouvert?"
Il s'appelle comment ton menu ? Ou comment s'appellent tes controles ? Car je ne vois toujours rien à l'horizon...
Aucune terre où poser nos codes...
Cordialement
Edit : je pense que Staple1600 a raison. Toutefois il existe une méthode pour attacher un menu manuel à un classeur. Je me souviens d'un fil sur ce sujet de Pierrot93 si je ne me trompe pas. Mais il a du sombrer avec la perte d'info du forum...
pour répondre à la question de Spitnolan, pour attacher une barre outils à un classeur => click droit dans les barre d'outils => personnalider => barre d'outils => bouton attacher...= selection de la barre personnalisé => copier.
Par contre, le précedent fil a du disparaitre lors du problème sur le serveur du forum.
Spitnolan08 : je n’ai pas de contrôles, le menu personnalisé a été réalisé à partir du menu Outils/Personnaliser/Commandes/Macros puis glissement de la commande « Élément de menu personnalisé » sur la barre de menus. Puis catégories « Nouveau menu » et glissement de la commande « Nouveau menu ».
Effectivement, tu dois avoir raison Staple1600 sur le fait d’avoir installer en local. Bien je vais essayer d’adapter le fichier d'Exce_lent car je pense que cela me convient comme je l’avais déjà dit plus haut. Par contre un autre problème se pose alors à moi. En effet je dois installer le projet sur un réseau en entreprise : donc mes menus perso il faudra que je me les « retape » tous en dur sur le réseau ? Ce qui est bien le vba c’est que plus on avance plus on se rend compte que l’on peut faire de belles choses, mais que l’on rencontre aussi des difficultés auxquelles on ne pensait pas au départ. Mais bon tout ceci n’est que détail quand on constate le résultat…
Staple1600 ce que tu me demandes est possible mais dans ce cas je reviendrais vous donner des nouvelles dans deux ans car c’est comme si tu demandais à un comptable de devenir peintre en deux ou trois coups de pinceau… (Je n’ai rien contre les comptables ni contre les peintres).
Conclusion : Y a-t-il une méthode pour installer un code sur réseau ?
Je mets en pj une image de mon menu perso avec quelques indications.