[VBA] Réinitialiser Application.OnKey
Le
HD

Bonjour,
A l'ouverture d'un classeur j'ai mis en Workbook_Open la ligne :
Application.OnKey "{LEFT}", "VerslaGauche"
afin de lancer la macro VerslaGauche lorsque je vais vers la gauche via
la flèche du clavier.
Mon souci est que si je ferme le classeur en question et qu'un autre
classeur était ouvert, lorsque je vais vouloir aller sur la gauche via
la flèche du clavier Excel me réouvre le classeur pour exécuter la
macro Si je met dans le Workbook_BeforeClose la ligne :
Application.OnKey "{LEFT}", ""
lorsque je vais appuyer sur la flèche gauche du clavier il ne va rien
se passer alors que je voudrais aller sur la gauche ce qui doit
s'effectuer normalement.
Comment donc peut on réinitialiser une touche que l'on aurait paramétrer
?
Merci d'avance pour votre aide,
@+
HD
A l'ouverture d'un classeur j'ai mis en Workbook_Open la ligne :
Application.OnKey "{LEFT}", "VerslaGauche"
afin de lancer la macro VerslaGauche lorsque je vais vers la gauche via
la flèche du clavier.
Mon souci est que si je ferme le classeur en question et qu'un autre
classeur était ouvert, lorsque je vais vouloir aller sur la gauche via
la flèche du clavier Excel me réouvre le classeur pour exécuter la
macro Si je met dans le Workbook_BeforeClose la ligne :
Application.OnKey "{LEFT}", ""
lorsque je vais appuyer sur la flèche gauche du clavier il ne va rien
se passer alors que je voudrais aller sur la gauche ce qui doit
s'effectuer normalement.
Comment donc peut on réinitialiser une touche que l'on aurait paramétrer
?
Merci d'avance pour votre aide,
@+
HD
de souvenance les guillemet comme 2èm argument servent à désactiver la fonction.
essai:
Application.OnKey "{LEFT}"
isabelle
Le 2014-04-02 10:04, HD a écrit :
Utilise ces 2 procédures événementielles du classeur en question et
oublie Workbook_Open.
'----------------------------------------------
Private Sub Workbook_Activate()
Application.OnKey "{LEFT}", "VerslaGauche"
End Sub
'----------------------------------------------
Private Sub Workbook_Deactivate()
Application.OnKey "{LEFT}", ""
End Sub
'----------------------------------------------
Et dans un module standard, la macro "Vers la gauche".
La macro va s'exécuter seulement lorsque tu es dans ledit classeur.
Sauf erreur, ces 2 lignes de code font la même chose!
Application.OnKey "{LEFT}"
OU
Application.OnKey "{LEFT}", ""
extrait de l'aide "Application.OnKey, méthode"
___________________________________________________________________________
Cet exemple montre comment désactiver la combinaison de touches MAJ+CTRL+DROITE.
Visual Basic pour Applications
Application.OnKey "+^{RIGHT}", ""
Cet exemple montre comment rétablir la signification normale de la combinaison
de touches MAJ+CTRL+DROITE.
Visual Basic pour Applications
Application.OnKey "+^{RIGHT}"
___________________________________________________________________________
isabelle
Le 2014-04-02 10:26, MichD a écrit :
Ma macro "Vers la gauche" est bien dans un module standard. Mais lorsque
je quitte le classeur, si j'appuie sur la flèche gauche {LEFT} alors le
curseur ne va plus sur la gauche...
Application.OnKey "{LEFT}", ""
ne réinitialise donc pas la touche de la flèche gauche... elle lui
enlève tout effet.
@+
HD
Petite précision... Ce scénario posant problème se produit lorsque le
classeur avec ces macros est ouvert alors qu'un autre classeur est
également ouvert. Si l'on ferme le classeur avec les macros alors sur le
classeur qui était également ouvert la flèche gauche ne fonctionne plus.
Par contre, sur d'autres applications (word ou autres) cela fonctionne.
@+
HD
Application.OnKey "{LEFT}"
Daniel
Effectivement, cela fonctionne bien. Il y'a donc une différence entre
Application.OnKey "{LEFT}"
et
Application.OnKey "{LEFT}", ""
@+
HD
Mes excuses Isabelle.
Salutations.
Application.OnKey "{LEFT}", ""
inactive la touche.
Daniel