XL 2016 VBA SendKeys - Que se passe-t-il sur le verrouillage numérique des PC et Mac ?

Dudu2

XLDnaute Barbatruc
Bonjour,

En VBA, je connnais 3 façons de faire un SendKeys.
Celui qui semble le plus sûr est un SendKeys via un Shell, mais il a aussi l'inconvénient de provoquer parfois des interruptions de code.
Les 2 autres ont un impact sur le verrouillage numérique (touche en haut à gauche du clavier numérique).

Sur mon PC, je peux constater l'impact des 2 autres, mais j'aimerais savoir pour d'autres PC ou MAC.
1621065747837.png


Merci par avance pour vos retours (si vous avez un voyant Num Lock pour juger de l'effet).
 

Pièces jointes

  • Classeur1.xlsm
    18.8 KB · Affichages: 51
Dernière édition:

MJ13

XLDnaute Barbatruc
Re

Merci Dudu, cela tombe bien, j'ai un programme que je dois modifier à cause de ce problème du clavier numérique qui se désactive. Avec toutes ces solutions, je pense pouvoir m'en sortir. ;)

comme souvent, avec Excel, il faut savoir raison garder.

Je te renvoie ton fichier avec la première macro, j'ai rajouté une entrée en cellule active de a. Sur Excel 2016, mon clavier numérique se désactive.

Sinon, avec le code simple que j'ai mis en #44, on doit pouvoir s'en sortir en cas de problème de ce type.

Le code qui fonctionne bien chez moi, c'est celui-ci:

VB:
Sub TestSendKeys1_MJ()
    Call SendKeys1("{ENTER}{UP}")
    SendKeys ("a~")
    Réactive_Clavier_Numérique
End Sub
Sub TestSendKeys2_MJ()
    Call SendKeys1("{ENTER}{UP}")
    SendKeys ("a~")
   SendKeys ("a~")
    Réactive_Clavier_Numérique
End Sub
Sub Réactive_Clavier_Numérique()
With Application
          DoEvents
          Application.SendKeys ("{NUMLOCK}"), True
          Application.SendKeys ("{NUMLOCK}"), True
    End With
End Sub
 

Pièces jointes

  • VBA SendKeys 3 méthodesV2_PB.xlsm
    21.9 KB · Affichages: 3
Dernière édition:

Dudu2

XLDnaute Barbatruc
Bonjour @MJ13,

J'ai du mal à te suivre.
VB:
Sub TestSendKeys1()
    Call SendKeys1("{ENTER}{UP}")
    SendKeys ("a~")
End Sub
Dans le code tu as rajouté l'instruction SendKeys ("a~").
Évidemment que ça créé une altération du Num Lock. C'est le problème qui a été adressé depuis le début en parallèle de la question de l'interruption.
Ça sert à rien de le reproduire dans le code du fichier publié en le renommant *V2_PB. On le sait que ça cause une problème. C'est pour ça que j'ai listé les 3 méthodes qui permettent de l'éviter. Les fonctions sont dans le Module_SendKeys. Tu les as vues ?

Que n'as-tu fait par exemple un Call SendKeys1("a~") pour vérifier que ça fonctionnait ?
 

MJ13

XLDnaute Barbatruc
Re Dudu

C'était juste pour dire que quand on met des sendkeys, on n'en met souvent plus d'un et le problème du clavier numérique réapparaît. :)

Sinon, essaie de faire un vrai programme avec des sendkeys et le problème va réapparaître.

Je ne dis pas détenir la vérité mais avec le code simple que j'ai mis et qu'on peut facilement mémoriser, on doit pouvoir s'en sortir.
 

Pièces jointes

  • Test_Sendkeys_Clavier_Numérique_MJ.xlsm
    15.4 KB · Affichages: 6

Statistiques des forums

Discussions
312 047
Messages
2 084 864
Membres
102 688
dernier inscrit
Biquet78