Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Call macro

  • Initiateur de la discussion Temjeh
  • Date de début
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
 

ChTi160

XLDnaute Barbatruc
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
 
B

bertrand

Guest
bonjour,

je pense cela vient simplement du fait que tu appelles macro1 alors qu'elle se nomme macro1(show) dans ce cas show est non facultatif.

Espérant ne pas dire de bétises
 
M

MerciTemjeh

Guest
Merci bertrand

Non le show est obligatoire si ekke doit être invisible par outils...macro donc je doit l'appeler

Je sais que ca fonctionne mais je veut la rendre invisible
Merci

Temjeh
 

Eric C

XLDnaute Barbatruc
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
 

myDearFriend!

XLDnaute Barbatruc
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 :
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.
 

Toutchoco

XLDnaute Nouveau
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
 
T

Temjeh

Guest
Wow j'en ai des réponse j'avais abandonné mais merci à tous j'ai déjà corriger mon code avec ...Optional Factice As String (très bon)
c'est parfait

Merci beaucoup

Temjeh
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…