Sortir d'une cellule lors de la saisie

Fermé
ThomasMexcel Messages postés 28 Date d'inscription jeudi 8 juin 2017 Statut Membre Dernière intervention 28 mars 2018 - 2 oct. 2017 à 11:17
 yves - 2 oct. 2017 à 15:23
Bonjour, en appuyant sur f2, il est possible de "rentrer" dans une cellule pour y insérer du texte. Puis si on appuie sur echap, on peut "sortir" de la cellule sans valider le texte.
J'ai un fichier excel sur lequel j'exécute plusieurs macros. Lorsque je suis encore en train de saisir du texte dans une cellule, si je change de fichier, un message d'erreur apparaît, puisque les macros ne peuvent plus se lancer.
La question est alors la suivante : comment est-il possible de "sortir" de la cellule avec une commande vba, pour pouvoir naviguer librement entre mes différents fichiers ?
J'espère avoir été assez clair..
En vous remerçiant d'avance pour votre aide, bonne journée
A voir également:

1 réponse

Bonjour Thomas,

Essaye avec cette instruction VBA :

SendKeys "{ESC}", True

C'est pour simuler par VBA un appui sur la touche ECHAP ;
avec True, la macro attend que la touche soit traitée avant
de poursuivre son exécution ; regarde l'aide VBA pour plus
de détails sur l'instruction SendKeys.

Cordialement
 
1
ThomasMexcel Messages postés 28 Date d'inscription jeudi 8 juin 2017 Statut Membre Dernière intervention 28 mars 2018
2 oct. 2017 à 14:51
Bonjour Yves,
Effectivement la commande proposée pourrait être une solution.
Je n'arrive cependant pas à déterminer la condition en vba équivalente à : si je suis en mode saisie dans telle plage de cellule pendant plus de 1 seconde, alors SendKeys Echap".
Je suppose que je suis obligé de laisser un temps pendant lequel j'autorise la saisie sinon je vais me bloquer..
0
yves > ThomasMexcel Messages postés 28 Date d'inscription jeudi 8 juin 2017 Statut Membre Dernière intervention 28 mars 2018
2 oct. 2017 à 15:23
Selon l'aide VBA de l'instruction SendKeys, le 2ème paramètre permet d'attendre
ou non le traitement de la séquence de touches envoyée (ici "{ESC}"), mais ça ne
permet pas un paramétrage plus fin tel celui que tu veux : il n'y a pas de 3ème
paramètre pour un délai (une seconde ou autre) ; je n'ai pas d'autre solution
à te proposer ; peut-être qu'un autre intervenant aura une idée ?
0