astuce pour application.sendkeys

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

patricktoulon

XLDnaute Barbatruc
Bonjour a tous

Application.sendkeys"" is the solution


il est arrivé a plusieurs d'entres nous d'utiliser le "Application.sendkeys"..." en VBA EXCEL et de voir notre pavé numérique se désactiver
ce "Bug" est connu depuis des décennies
a ce jour par l’intermédiaire de l'api getkeystate on peux savoir si le pavé est activé ou non et selon un sendkeys"{NUMLOCK}" règle le problème
ça reste fastidieux et certaines personnes ne voudrons pas se servir des api windows

j'ai découvert ces deux derniers jour comment solutionner le problème d'une manière dont le mot simple est un euphémisme
il s’avère que quand le pavé se désactive un sendkeys (n'importe quelle lettre ou touche system ) le réactive
problème cette touche n'est pas désiré

alors j'ai tenté un sendkeys vide (application.sendkeys"") et la surprise!!! la mémoire du sendkeys est vidée et comme aucun code n'est envoyé aucune touche n'est simulée mais le pavé est réactivé
il s’avère après test que si le pavé n'aurait pas été désactivé ça n'a aucun effet ben bingo alors

un exemple parlant: la simulation de la touche snapshot qui la fâcheuse manie de désactiver le pavé a chaque coup
et bien la solution est simple
VB:
Sub test()
    For i = 1 To 20
        Application.SendKeys "(%{1068})", True'avec"%"=fenetre active ;  sans le "%" =plein écran
        Application.SendKeys ""
        DoEvents
        ActiveSheet.Paste
    Next
End Sub
c'est propre net et nul besoins d'autre chose
 
Bonjour a tous

Application.sendkeys"" is the solution


il est arrivé a plusieurs d'entres nous d'utiliser le "Application.sendkeys"..." en VBA EXCEL et de voir notre pavé numérique se désactiver
ce "Bug" est connu depuis des décennies
a ce jour par l’intermédiaire de l'api getkeystate on peux savoir si le pavé est activé ou non et selon un sendkeys"{NUMLOCK}" règle le problème
ça reste fastidieux et certaines personnes ne voudrons pas se servir des api windows

j'ai découvert ces deux derniers jour comment solutionner le problème d'une manière dont le mot simple est un euphémisme
il s’avère que quand le pavé se désactive un sendkeys (n'importe quelle lettre ou touche system ) le réactive
problème cette touche n'est pas désiré

alors j'ai tenté un sendkeys vide (application.sendkeys"") et la surprise!!! la mémoire du sendkeys est vidée et comme aucun code n'est envoyé aucune touche n'est simulée mais le pavé est réactivé
il s’avère après test que si le pavé n'aurait pas été désactivé ça n'a aucun effet ben bingo alors

un exemple parlant: la simulation de la touche snapshot qui la fâcheuse manie de désactiver le pavé a chaque coup
et bien la solution est simple
VB:
Sub test()
    For i = 1 To 20
        Application.SendKeys "(%{1068})", True'avec"%"=fenetre active ;  sans le "%" =plein écran
        Application.SendKeys ""
        DoEvents
        ActiveSheet.Paste
    Next
End Sub
c'est propre net et nul besoins d'autre chose
T le meilleur Patrick !
 
Bonjour a tous

Application.sendkeys"" is the solution


il est arrivé a plusieurs d'entres nous d'utiliser le "Application.sendkeys"..." en VBA EXCEL et de voir notre pavé numérique se désactiver
ce "Bug" est connu depuis des décennies
a ce jour par l’intermédiaire de l'api getkeystate on peux savoir si le pavé est activé ou non et selon un sendkeys"{NUMLOCK}" règle le problème
ça reste fastidieux et certaines personnes ne voudrons pas se servir des api windows

j'ai découvert ces deux derniers jour comment solutionner le problème d'une manière dont le mot simple est un euphémisme
il s’avère que quand le pavé se désactive un sendkeys (n'importe quelle lettre ou touche system ) le réactive
problème cette touche n'est pas désiré

alors j'ai tenté un sendkeys vide (application.sendkeys"") et la surprise!!! la mémoire du sendkeys est vidée et comme aucun code n'est envoyé aucune touche n'est simulée mais le pavé est réactivé
il s’avère après test que si le pavé n'aurait pas été désactivé ça n'a aucun effet ben bingo alors

un exemple parlant: la simulation de la touche snapshot qui la fâcheuse manie de désactiver le pavé a chaque coup
et bien la solution est simple
VB:
Sub test()
    For i = 1 To 20
        Application.SendKeys "(%{1068})", True'avec"%"=fenetre active ;  sans le "%" =plein écran
        Application.SendKeys ""
        DoEvents
        ActiveSheet.Paste
    Next
End Sub
c'est propre net et nul besoins d'autre chose
ca peut s'utiliser dans un Userform?
Que represente "%"
et pourquoi faire la boucle de 1 à 20
Merci de m'eclairer
 
bonjour
1° oui on peut l'utiliser dans un userform (c'est d'ailleurs dans cette optique que cela a été fait)
2° :Le "%" je pense que pour ça le commentaire est assez explicite je pense
1755430491001.png

3° la boucle c'est juste pour la demo , je fait 20 fois la capture pour justement prouver que ca fonctionne
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour