Sortir d'une cellule lors de la saisie

ThomasMexcel Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   -  
 yves -
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

1 réponse

  1. yves
     
    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
    1. ThomasMexcel Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
       
      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
      1. yves > ThomasMexcel Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
         
        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