• Initiateur de la discussion Initiateur de la discussion Temjeh
  • Date de début Date de début

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 !

T

Temjeh

Guest
Bonjour le forum
Encore une question simple

Comment faire pour appeler (F8)avec ceci une macro caché?

Private Sub Workbook_Activate()
Application.OnKey '{F8}', 'Macro1'
End Sub

Je veut appeler

Sub Macro1(show)
UserForm4.show
UserForm2.show
End Sub

J,ai essayé:
Application.OnKey '{F8}', 'show'
Application.OnKey '{F8}', call 'Macro1'
Application.OnKey '{F8}', call 'show'
Application.OnKey '{F8}', 'call Macro1'
On met erreur non facultatif ou de compilation

Merci beaucoup

Temjeh
 
Salut'Temjeh'
je viens de tester ceci et ca marche
dans ThisWorBook
Private Sub Workbook_Activate()
Application.OnKey '{F8}', 'Macro1'
End Sub
dans un module Module 1
J'ai mis
Sub Macro1()
MsgBox 'Coucou'
End Sub
eh bien lorsque je fait F8 devine çà me fait 'Coucou' ????
Amicalement
Jean Marie

Message édité par: ChTi160, à: 07/04/2005 14:09
 
Bonjour le forum
Bonjour Temjeh, bonjour bertrand, bonjour Jean-Marie

Si tu veux que ton appli fonctionne tout en 'cachant' ta 'Macro1' depuis le Menu / Outils / Macros il te suffit depuis ton module de mettre entre parenthèses la procédure suivante. Ainsi ta macro n'et pas visible dans Macros et tu peux l'appeler selon le code fourni par ChTi160.
Code:
Sub Macro1(Optional Factice As String)
UserForm1.Show
End Sub
Code:
Private Sub Workbook_Activate()
Application.OnKey '{F8}', 'Macro1'
End Sub
😉
 
Bonsoir Temjeh, ChTi160, bertrand et Eric C.

Eric a raison, si le l'objectif est uniquement de rendre invisible cette procédure dans la boîte de dialogue d'appel macro (ALT + F8), tu as la possibilité de rendre l'argument show falcultatif en ajoutant Optional dans le titre de la procédure.

Une autre façon de faire pour le même résultat est de mettre Option Private Module en entête du module général contenant la procédure (comme tu le fais pour Option Explicit).

Sinon, si tu souhaites vraiment passer un argument dans un appel par la méthode Application.OnKey, tu peux procéder ainsi :

Dans le module ThisWorkbook :
Private Sub Workbook_Activate()
'le nom de la procédure et l'argument sont séparés par un espace et le tout, entouré par
'des apostrophes (+ guillemets bien sûr !)

      Application.OnKey '{F8}', ''Macro1 True''
      Application.OnKey '{F9}', ''Macro1 False''
End Sub
Dans un module de code général (Module1 par exemple) :
Public Sub Macro1(Arg As Boolean)
      MsgBox 'Appel par la touche : ' & IIf(Arg, 'F8', 'F9')
End Sub
Cordialement.
 
Bonsoir à tous !
Au sujet de la macro que l'on a rendue invisible.. Comment aller la modifier ?
En fait j'ai créée un fichier qui à l'ouverture
affiche pendant qqs secondes un userform d'info
QQs jours plus tard je reviens sur ce fichier et je souhaite diminuer le tps d'affichage Mais je ne sais plus comment accéder à la macro...

Donc j'ai carrément supprimé le userform.
Y avait-il une autre solution ?
Merci à tous
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
10
Affichages
658
Réponses
4
Affichages
1 K
N
Réponses
6
Affichages
2 K
R
Réponses
2
Affichages
4 K
Retour