[Catégorie modifiée .Net --> VBA] VBA - Sendkeys inopérant au sein d'Excel
macrofou
Messages postés4Date d'inscriptionmercredi 11 février 2009StatutMembreDernière intervention13 décembre 2015
-
30 juin 2010 à 18:48
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 2016
-
30 juin 2010 à 22:55
Bonjour
Je souhaite utiliser la fonction SendKeys sous Excel
et les touches envoyées ... ne sont pas envoyées.
Il ne se passe rien.
Illustration sur un exemple basique :
Soit une feuille vierge
et la macro suivante :
Sub Descente()
Range("A1").Select
SendKeys "{DOWN}", True
DoEvents
End Sub
Mettons le curseur sur n'importe quelle cellule autre que A1
Range va mettre le curseur en A1
Du SendKeys, j'attends que le curseur descende d'une cellule ...
Manque de chance, rien ne bouge !
Le DoEvents, c'est pour laisser le temps au système !
Pourquoi ?
Par contre, activer une autre appli style Notepad, et envoyer des touches sur cette autre appli, pas de souci.
Bref, faire compliqué, ca marche
Faire simple, en local, au sein de la meme feuille Excel, marche pas !
Qq'un a t'il une réponse ?
Ce qui me dépannerai grandement dans mes développements de macro sous Excel 2003.
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 30 juin 2010 à 21:17
Bonjour,
Déjà, je souscris à 100% à la remarque de NHenry. C'est comme cela qu'il faut programmer et pas avec SendKeys.
Enfin, on peut tout de même indiquer que le code suivant à mettre dans un module :
Sub Descente()
Sheets("feuil1").Activate
Application.SendKeys "{DOWN}"
End Sub
fonctionne parfaitement...
Alors, pourquoi cela ne fonctionne pas avec ton code? La raison en est simple : Sendkeys simule l'appui d'une touche à partir de l'application active... C'est là le grand problème... Si SendKey ne fonctionne pas avec ton code, c'est tout simplement qu'au moment ou cette instruction s'exécute, tu n'as pas la feuille Excel active...
macrofou
Messages postés4Date d'inscriptionmercredi 11 février 2009StatutMembreDernière intervention13 décembre 2015 30 juin 2010 à 22:38
Merci pour la rapidité et la pertinence des réponses .
C'est nickel et ça marche.
C'est pour l'exemple que je cherchais à descendre d'une cellule.
Ce que je cherchais à faire en réalité, c'est à sélectionner toutes les données affichées aprés l'activation d'un filtre
et pour ça, c'est du :
Origine
Maj + Ctrl + fleche bas
Maj + fleche droite
car Ctrl-A ou Select All, c'est 65000 lignes assurées !
J'avais bien pensé à l'activation d'Excel, mais j'ai dû mal m'y prendre !
Encore un grand merci, je peux reprendre mes developpements.