je d=E9sire =E0 partir d'Excel (en VBA) lancer puis envoyer des touches=
=E0=20
une autre application windows. Habituellement je suis plut=F4t =E0 l'aise=
en=20
VBA et il est facile de trouver pas mal de documents sur la fa=E7on de=20
contr=F4ler d'autres applications Office (par exemple Word).
Pour ma part j'aimerais le faire pour une application quelconque. J'ai =
peut-=EAtre mal cherch=E9, c'est peut-=EAtre simple. Toujours est-il que =
je=20
n'ai aucune id=E9e de la fa=E7on donc le faire...
Exemple "de principe", juste pour l'exemple, lan=E7ons le bloc note (en=
=20
passant par l'appel complet de l'ex=E9cutable ...\system32\notepad.exe ca=
r=20
=E7a doit pouvoir =EAtre une application quelconque) et envoyons-lui la=20
s=E9quence de touche Abcd ENTR=C9E
Comment faire cela ?
Je dois admettre ne pas le savoir.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonjour Abcd,
Essaie ceci :
'------------------ SendKeys "%f" ret = Shell("c:windowssystem32notepad.exe", vbNormalFocus) '------------------
Mais de là à piloter cette application complétement par Sendkeys ...!!!
Salutations!
"abcd" a écrit dans le message de news: %23e% Bonjour,
je désire à partir d'Excel (en VBA) lancer puis envoyer des touches à une autre application windows. Habituellement je suis plutôt à l'aise en VBA et il est facile de trouver pas mal de documents sur la façon de contrôler d'autres applications Office (par exemple Word).
Pour ma part j'aimerais le faire pour une application quelconque. J'ai peut-être mal cherché, c'est peut-être simple. Toujours est-il que je n'ai aucune idée de la façon donc le faire...
Exemple "de principe", juste pour l'exemple, lançons le bloc note (en passant par l'appel complet de l'exécutable ...system32notepad.exe car ça doit pouvoir être une application quelconque) et envoyons-lui la séquence de touche Abcd ENTRÉE
Comment faire cela ? Je dois admettre ne pas le savoir.
Merci par avance
Bonjour Abcd,
Essaie ceci :
'------------------
SendKeys "%f"
ret = Shell("c:windowssystem32notepad.exe", vbNormalFocus)
'------------------
Mais de là à piloter cette application complétement par Sendkeys ...!!!
Salutations!
"abcd" <fake.email@nospam.fr> a écrit dans le message de news: %23e%23HDuJ5FHA.3400@tk2msftngp13.phx.gbl...
Bonjour,
je désire à partir d'Excel (en VBA) lancer puis envoyer des touches à
une autre application windows. Habituellement je suis plutôt à l'aise en
VBA et il est facile de trouver pas mal de documents sur la façon de
contrôler d'autres applications Office (par exemple Word).
Pour ma part j'aimerais le faire pour une application quelconque. J'ai
peut-être mal cherché, c'est peut-être simple. Toujours est-il que je
n'ai aucune idée de la façon donc le faire...
Exemple "de principe", juste pour l'exemple, lançons le bloc note (en
passant par l'appel complet de l'exécutable ...system32notepad.exe car
ça doit pouvoir être une application quelconque) et envoyons-lui la
séquence de touche Abcd ENTRÉE
Comment faire cela ?
Je dois admettre ne pas le savoir.
'------------------ SendKeys "%f" ret = Shell("c:windowssystem32notepad.exe", vbNormalFocus) '------------------
Mais de là à piloter cette application complétement par Sendkeys ...!!!
Salutations!
"abcd" a écrit dans le message de news: %23e% Bonjour,
je désire à partir d'Excel (en VBA) lancer puis envoyer des touches à une autre application windows. Habituellement je suis plutôt à l'aise en VBA et il est facile de trouver pas mal de documents sur la façon de contrôler d'autres applications Office (par exemple Word).
Pour ma part j'aimerais le faire pour une application quelconque. J'ai peut-être mal cherché, c'est peut-être simple. Toujours est-il que je n'ai aucune idée de la façon donc le faire...
Exemple "de principe", juste pour l'exemple, lançons le bloc note (en passant par l'appel complet de l'exécutable ...system32notepad.exe car ça doit pouvoir être une application quelconque) et envoyons-lui la séquence de touche Abcd ENTRÉE
Comment faire cela ? Je dois admettre ne pas le savoir.
Merci par avance
abcd
je ne connaissais pas cette instruction Shell, j'imaginais qu'elle existait tout au plus... Je me doute ne pas tout contrôler ainsi mais SendKeys me suffit pour ce que j'ai à faire.
Ceci dit il me reste un petit problème, il faudrait que cette application puisse s'exécuter dans un répertoire particulier
c'est possible à ajouter (l'aide de la fonction Shell ne semble pas l'indiquer, pourtant j'imagine que ça doit être faisable aussi)
une idée ?
je ne connaissais pas cette instruction Shell, j'imaginais qu'elle
existait tout au plus... Je me doute ne pas tout contrôler ainsi mais
SendKeys me suffit pour ce que j'ai à faire.
Ceci dit il me reste un petit problème, il faudrait que cette
application puisse s'exécuter dans un répertoire particulier
c'est possible à ajouter (l'aide de la fonction Shell ne semble pas
l'indiquer, pourtant j'imagine que ça doit être faisable aussi)
je ne connaissais pas cette instruction Shell, j'imaginais qu'elle existait tout au plus... Je me doute ne pas tout contrôler ainsi mais SendKeys me suffit pour ce que j'ai à faire.
Ceci dit il me reste un petit problème, il faudrait que cette application puisse s'exécuter dans un répertoire particulier
c'est possible à ajouter (l'aide de la fonction Shell ne semble pas l'indiquer, pourtant j'imagine que ça doit être faisable aussi)
une idée ?
michdenis
| il faudrait que cette application puisse s'exécuter dans un répertoire particulier
qu'est-ce que cela signifie ?
Salutations!
"abcd" a écrit dans le message de news: % je ne connaissais pas cette instruction Shell, j'imaginais qu'elle existait tout au plus... Je me doute ne pas tout contrôler ainsi mais SendKeys me suffit pour ce que j'ai à faire.
Ceci dit il me reste un petit problème, il faudrait que cette application puisse s'exécuter dans un répertoire particulier
c'est possible à ajouter (l'aide de la fonction Shell ne semble pas l'indiquer, pourtant j'imagine que ça doit être faisable aussi)
une idée ?
| il faudrait que cette application puisse s'exécuter dans un répertoire particulier
qu'est-ce que cela signifie ?
Salutations!
"abcd" <fake.email@nospam.fr> a écrit dans le message de news: %23bH4j1K5FHA.1864@TK2MSFTNGP12.phx.gbl...
je ne connaissais pas cette instruction Shell, j'imaginais qu'elle
existait tout au plus... Je me doute ne pas tout contrôler ainsi mais
SendKeys me suffit pour ce que j'ai à faire.
Ceci dit il me reste un petit problème, il faudrait que cette
application puisse s'exécuter dans un répertoire particulier
c'est possible à ajouter (l'aide de la fonction Shell ne semble pas
l'indiquer, pourtant j'imagine que ça doit être faisable aussi)
| il faudrait que cette application puisse s'exécuter dans un répertoire particulier
qu'est-ce que cela signifie ?
Salutations!
"abcd" a écrit dans le message de news: % je ne connaissais pas cette instruction Shell, j'imaginais qu'elle existait tout au plus... Je me doute ne pas tout contrôler ainsi mais SendKeys me suffit pour ce que j'ai à faire.
Ceci dit il me reste un petit problème, il faudrait que cette application puisse s'exécuter dans un répertoire particulier
c'est possible à ajouter (l'aide de la fonction Shell ne semble pas l'indiquer, pourtant j'imagine que ça doit être faisable aussi)
une idée ?
Modeste
Bonsour® abcd wrote:
J'ai peut-être mal cherché....
l'aide VBA EXCEL montre l'exemple ci-dessous : SendKeys, instruction, exemple Cet exemple utilise la fonction Shell pour exécuter l'application Calculatrice fournie avec Microsoft Windows. Il utilise ensuite l'instruction SendKeys pour envoyer des frappes de touches destinées à ajouter des nombres, puis à quitter la Calculatrice. Pour afficher l'exemple, collez le code ci-dessous dans une procédure puis exécutez cette dernière. Dans la mesure où l'instruction AppActivate transfère le focus vers l'application Calculatrice, il n'est pas possible d'exécuter le code pas à pas.
Dim ReturnValue, I ReturnValue = Shell("CALC.EXE", 1) ' Exécute l'application Calculatrice. AppActivate ReturnValue ' Active l'application Calculatrice. For I = 1 To 100 ' Configure la boucle de comptage. SendKeys I & "{+}", True ' Envoie des frappes de touches Next I ' à l'application Calculatrice pour ' ajouter chaque valeur de I. SendKeys "=", True ' Fait le total général. SendKeys "%{F4}", True ' Envoie la combinaison ALT+F4 pour fermer ' l'application Calculatrice.
Comme le précise Denis cela n'est pas tout simple.... il faut en effet connaitre tous les raccourcis clavier de l'application (déplacements et actions) il faut effectuer une premiere fois toutes les actions prévues en notant au fur et a mesures tous les raccourcis claviers correspondant s'il n'existe pas de raccourci clavier ... c'est inutile d'aller plus loin.
Derniere chose et non des moindres : il n'est pas possible d'exécuter le code pas à pas l'instruction AppActivate transfère le focus vers l'application !!!!
Bon Courage
-- n'oubliez pas les FAQ :http://www.excelabo.net http://dj.joss.free.fr/faq.htmhttp://www.faqoe.com http://faqword.free.fr-- Feed Backhttp://viadresse.com/?94912042
Bonsour®
abcd wrote:
J'ai peut-être mal cherché....
l'aide VBA EXCEL montre l'exemple ci-dessous :
SendKeys, instruction, exemple
Cet exemple utilise la fonction Shell pour exécuter l'application
Calculatrice fournie avec Microsoft Windows.
Il utilise ensuite l'instruction SendKeys pour envoyer des frappes de
touches destinées à ajouter des nombres, puis à quitter la Calculatrice.
Pour afficher l'exemple, collez le code ci-dessous dans une procédure puis
exécutez cette dernière.
Dans la mesure où l'instruction AppActivate transfère le focus vers
l'application Calculatrice, il n'est pas possible d'exécuter le code pas à
pas.
Dim ReturnValue, I
ReturnValue = Shell("CALC.EXE", 1) ' Exécute l'application Calculatrice.
AppActivate ReturnValue ' Active l'application Calculatrice.
For I = 1 To 100 ' Configure la boucle de comptage.
SendKeys I & "{+}", True ' Envoie des frappes de touches
Next I ' à l'application Calculatrice pour
' ajouter chaque valeur de I.
SendKeys "=", True ' Fait le total général.
SendKeys "%{F4}", True ' Envoie la combinaison ALT+F4 pour fermer
' l'application Calculatrice.
Comme le précise Denis cela n'est pas tout simple....
il faut en effet connaitre tous les raccourcis clavier de l'application
(déplacements et actions)
il faut effectuer une premiere fois toutes les actions prévues en notant au
fur et a mesures tous les raccourcis claviers correspondant
s'il n'existe pas de raccourci clavier ... c'est inutile d'aller plus loin.
Derniere chose et non des moindres : il n'est pas possible d'exécuter le
code pas à pas
l'instruction AppActivate transfère le focus vers l'application !!!!
Bon Courage
-- n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htmhttp://www.faqoe.com
http://faqword.free.fr-- Feed Backhttp://viadresse.com/?94912042
l'aide VBA EXCEL montre l'exemple ci-dessous : SendKeys, instruction, exemple Cet exemple utilise la fonction Shell pour exécuter l'application Calculatrice fournie avec Microsoft Windows. Il utilise ensuite l'instruction SendKeys pour envoyer des frappes de touches destinées à ajouter des nombres, puis à quitter la Calculatrice. Pour afficher l'exemple, collez le code ci-dessous dans une procédure puis exécutez cette dernière. Dans la mesure où l'instruction AppActivate transfère le focus vers l'application Calculatrice, il n'est pas possible d'exécuter le code pas à pas.
Dim ReturnValue, I ReturnValue = Shell("CALC.EXE", 1) ' Exécute l'application Calculatrice. AppActivate ReturnValue ' Active l'application Calculatrice. For I = 1 To 100 ' Configure la boucle de comptage. SendKeys I & "{+}", True ' Envoie des frappes de touches Next I ' à l'application Calculatrice pour ' ajouter chaque valeur de I. SendKeys "=", True ' Fait le total général. SendKeys "%{F4}", True ' Envoie la combinaison ALT+F4 pour fermer ' l'application Calculatrice.
Comme le précise Denis cela n'est pas tout simple.... il faut en effet connaitre tous les raccourcis clavier de l'application (déplacements et actions) il faut effectuer une premiere fois toutes les actions prévues en notant au fur et a mesures tous les raccourcis claviers correspondant s'il n'existe pas de raccourci clavier ... c'est inutile d'aller plus loin.
Derniere chose et non des moindres : il n'est pas possible d'exécuter le code pas à pas l'instruction AppActivate transfère le focus vers l'application !!!!
Bon Courage
-- n'oubliez pas les FAQ :http://www.excelabo.net http://dj.joss.free.fr/faq.htmhttp://www.faqoe.com http://faqword.free.fr-- Feed Backhttp://viadresse.com/?94912042
abcd
qu'est-ce que cela signifie ?
une application démarre dans un certain contexte un répertoire particulier
ça peut être son propre répertoire en général (si tu fais appel à un fichier sans préciser le chemin, c'est celui l à) sauf que là c'est lancé depuis excel, donc ça se lance depuis le répertoire d'excel
qu'est-ce que cela signifie ?
une application démarre dans un certain contexte
un répertoire particulier
ça peut être son propre répertoire en général
(si tu fais appel à un fichier sans préciser le chemin, c'est celui l à)
sauf que là c'est lancé depuis excel, donc ça se lance depuis le
répertoire d'excel
une application démarre dans un certain contexte un répertoire particulier
ça peut être son propre répertoire en général (si tu fais appel à un fichier sans préciser le chemin, c'est celui l à) sauf que là c'est lancé depuis excel, donc ça se lance depuis le répertoire d'excel
michdenis
Bonjour Abcd,
Si tu désires ouvrir un fichier :
'--------------------- Dim FichierAOuvrir As String FichierAOuvrir = "c:test.txt" 'à déterminer
une application démarre dans un certain contexte un répertoire particulier
ça peut être son propre répertoire en général (si tu fais appel à un fichier sans préciser le chemin, c'est celui là) sauf que là c'est lancé depuis excel, donc ça se lance depuis le répertoire d'excel
Bonjour Abcd,
Si tu désires ouvrir un fichier :
'---------------------
Dim FichierAOuvrir As String
FichierAOuvrir = "c:test.txt" 'à déterminer
"abcd" <fake.email@nospam.fr> a écrit dans le message de news: eioS$YL5FHA.3292@tk2msftngp13.phx.gbl...
qu'est-ce que cela signifie ?
une application démarre dans un certain contexte
un répertoire particulier
ça peut être son propre répertoire en général
(si tu fais appel à un fichier sans préciser le chemin, c'est celui là)
sauf que là c'est lancé depuis excel, donc ça se lance depuis le
répertoire d'excel
une application démarre dans un certain contexte un répertoire particulier
ça peut être son propre répertoire en général (si tu fais appel à un fichier sans préciser le chemin, c'est celui là) sauf que là c'est lancé depuis excel, donc ça se lance depuis le répertoire d'excel
abcd
oui j'ai lu ce document après sa réponse.
Trouver les touches n'est pas un problème, c'est surtout de contrôl er le dossier (répertoire) depuis lequel est lancé l'application et auss i je découvre en cours de route qu'il envoie les touches un peu trop tô t, avant que l'application ne soit lancée. Le premier point à la limite je vais pouvoir m'en débrouiller. Le second m'ennuie plus: car avec un sleep d'abord ça pose un problème (il envoie les touches à vba, il doit reprendre le focus après le sleep je ne sais pas).
oui j'ai lu ce document après sa réponse.
Trouver les touches n'est pas un problème, c'est surtout de contrôl er
le dossier (répertoire) depuis lequel est lancé l'application et auss i
je découvre en cours de route qu'il envoie les touches un peu trop tô t,
avant que l'application ne soit lancée. Le premier point à la limite je
vais pouvoir m'en débrouiller. Le second m'ennuie plus: car avec un
sleep d'abord ça pose un problème (il envoie les touches à vba, il doit
reprendre le focus après le sleep je ne sais pas).
Trouver les touches n'est pas un problème, c'est surtout de contrôl er le dossier (répertoire) depuis lequel est lancé l'application et auss i je découvre en cours de route qu'il envoie les touches un peu trop tô t, avant que l'application ne soit lancée. Le premier point à la limite je vais pouvoir m'en débrouiller. Le second m'ennuie plus: car avec un sleep d'abord ça pose un problème (il envoie les touches à vba, il doit reprendre le focus après le sleep je ne sais pas).
là n'est plus la problématique par contre je suis surpris de voir deux exemples avec le SendKeys AVANT le Shell ... pourquoi ? je ne capte pas bien. Déjà en mettant le SendKeys après il m'envoie les touches trop tôt, alors ... VBA est supposer envoyer les touches qu'à l'application en changeant l'ordre ?
J'ai plutôt besoin qu'il attende que l'appli soit ouverte (ou au moin s un délai) avant de lancer les touches
là n'est plus la problématique
par contre je suis surpris de voir deux exemples avec le SendKeys AVANT
le Shell ... pourquoi ? je ne capte pas bien. Déjà en mettant le
SendKeys après il m'envoie les touches trop tôt, alors ... VBA est
supposer envoyer les touches qu'à l'application en changeant l'ordre ?
J'ai plutôt besoin qu'il attende que l'appli soit ouverte (ou au moin s
un délai) avant de lancer les touches
là n'est plus la problématique par contre je suis surpris de voir deux exemples avec le SendKeys AVANT le Shell ... pourquoi ? je ne capte pas bien. Déjà en mettant le SendKeys après il m'envoie les touches trop tôt, alors ... VBA est supposer envoyer les touches qu'à l'application en changeant l'ordre ?
J'ai plutôt besoin qu'il attende que l'appli soit ouverte (ou au moin s un délai) avant de lancer les touches