[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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #26066022
bonjour 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 :
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
MichD
Le #26066012
Bonjour,

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.
MichD
Le #26066002
Bonjour Isabelle,

Sauf erreur, ces 2 lignes de code font la même chose!

Application.OnKey "{LEFT}"
OU
Application.OnKey "{LEFT}", ""
isabelle
Le #26065992
salut Denis,

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 :
Bonjour Isabelle,

Sauf erreur, ces 2 lignes de code font la même chose!

Application.OnKey "{LEFT}"
OU
Application.OnKey "{LEFT}", ""
HD
Le #26066892
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.



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
HD
Le #26066882
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.



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
DanielCo
Le #26066952
Bonjour,

Application.OnKey "{LEFT}"

Daniel


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.



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
HD
Le #26067362
'----------------------------------------------
Private Sub Workbook_Deactivate()
Application.OnKey "{LEFT}", ""
End Sub
'----------------------------------------------




Application.OnKey "{LEFT}"


Effectivement, cela fonctionne bien. Il y'a donc une différence entre
Application.OnKey "{LEFT}"
et
Application.OnKey "{LEFT}", ""

@+
HD
MichD
Le #26067522
Des coins de ma mémoire qui ont besoin d'être rafraichis!
Mes excuses Isabelle.

Salutations.
DanielCo
Le #26068322
'----------------------------------------------
Private Sub Workbook_Deactivate()
Application.OnKey "{LEFT}", ""
End Sub
'----------------------------------------------




Application.OnKey "{LEFT}"


Effectivement, cela fonctionne bien. Il y'a donc une différence entre
Application.OnKey "{LEFT}"
et
Application.OnKey "{LEFT}", ""

@+
HD



Application.OnKey "{LEFT}", ""
inactive la touche.
Daniel
Publicité
Poster une réponse
Anonyme