Send Key vers une autre application

Bonjour a tous, mon application excel VBA est capable de communiquer avec une autre application ouverte "non excel" afin de lire des donnees qui s'y trouvent, mais j'aimerais qu'elle puisse envoyer la commande F2 reconnu par l'application.

J'ai fait un essai avec send key mais puisque la fenetre active est mon application excel, ca ne fonctionne pas. Y-a t-il un moyen pour contourner ca?

private sub test
SendKeys "F2", True
end sub

Merci.

Bonjour,

Active l'appli en question au préalable :

AppActivate "NomAppli"

bonne journée

@+

Salut Pierrot! j'ai essaye mais j'obtient l'erreu:

"Argument ou appel de procedure incorecte"

Public Sub test()
AppActivate "z80simulatoride"
SendKeys "F2", True

End Sub

RE,

A noter, le nom entre guillemets est le titre dans la barre de titre de la fenêtre d'application à activer.... sinon pas d'autre idée...

Tu avais raison, ca fonctionne. Par contre as -tu une idee pourquoi je dois faire F2 avec le clavier, alors que j'ai l'instruction equivalente dans mon VBA?

Private Sub CommandButton5_Click()
AppActivate "Z80 Simulator IDE"
SendKeys "F2"
End Sub

Re,

essaye comme ceci :

SendKeys "{F2}"

Trop cool!

2 dernieres choses que j'aimerais faire:

remettre le focus sur mon application excel VBA?

reduire l'application Z80 Simulator IDE, pour ne plus la voir a l'ecran?

Private Sub CommandButton5_Click()

AppActivate "Z80 Simulator IDE"

SendKeys "F2"

End Sub

Re,

remettre le focus sur mon application excel VBA?

ré-utilise "AppActivate" en spécifiant excel...

Ca fonctionne, mais j'ai une petite anomalie: il arrive souvent que F2 soit interpreter par excel , dois-je mettre un delais quelque part?

Public Sub test()
AppActivate "Z80 Simulator IDE"
SendKeys "{F2}"
AppActivate "Microsoft Excel"
End Sub

Re,

essaye peut être avec un "wait" avant le "sendkeys"....

Je viens de trouver une solution, en ajoutant "true". Par contre ma commande F2 ne fonctionnera pas si je reduit la fenetre afin de la cache. Si je la laisse a l'ecran, c'est un peu agacant pour les yeux lorsqu'elles s'active car elle se place par dessus excel.

 Public Sub test()
    AppActivate "Z80 Simulator IDE"
    SendKeys "{F2}",true
    AppActivate "Microsoft Excel"
    End Sub

Re,

peut être avec un "wait" :

Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "{F2}"

Ca ne marche pas mais ce n'est pas grave, je reduirai ma fenetre excel pour que l'autre petite application soit a cote, comme ca il n'y aura rien d'agacant pour les yeux.

J'ai essaye d'autres commandes qui utilise "CTRL Fx" ca fonctionne mais pour CTRL V, CTRL W ... ca ne marche pas, quel est la syntaxe.

SendKeys "^{F3}"  'fonctionne
SendKeys "^V"      'ne fonctionne pas!

Re,

il faut également que la combinaison de touche soit active dans l'appli en question....

Oui, ces combinaisons existe. En fait toute les combinaisons du style CTRL + une lettre servent a ouvrir differentes fenetres a partir de cette application. Peut-etre que ce n'est pas possible a partir d'excel? la syntaxe est bien du style SendKeys "^V"

Re,

partir d'excel? la syntaxe est bien du style SendKeys "^V"

A priori, oui...

Application.SendKeys "^v"

pas d'autre idée....

Je crois qu'il faut conclure que ce ne sera pas possible d'ouvrir une fenetre a l'interieur d'une application. Lorsque j'essai, j'obtient un court signal sonore du PC.

Quoi qu'il en soit, un gros merci car je peux maintenant commander l'application a partir de mon code VBA.

Capucin

Rechercher des sujets similaires à "send key application"