Changement de focus d'application en VBA (Court, mais intense) [Résolu]

cs_Keliah 11 Messages postés lundi 24 mai 2004Date d'inscription 6 avril 2005 Dernière intervention - 27 mars 2005 à 13:06 - Dernière réponse : cs_Warning 517 Messages postés samedi 3 février 2001Date d'inscription 24 octobre 2006 Dernière intervention
- 28 mars 2005 à 13:52
Voici mon problème,

Tout cela en VBA

Je veux pouvoir changer d'application, puis revenir sous word pour y coller les données récuperés.

J'ai récuperé une script VBS qui fait exactement ce que je veux mais je n'arrive pas à le faire fonctionner, je pense que vous savez peut être pourquoi.

Set obj_ie = CreateObject("InternetExplorer.Application")
obj_ie.Navigate("about:blank")
Set obj_wsh = WScript.CreateObject("WScript.Shell")

Cela fait je récupère les données en faisant de la facon suivante :

obj_wsh.SendKeys "{TAB}^c"
str_character = obj_ie.document.parentwindow.clipboardData.GetData("text")

Ca fonctionne parfaitement dans mon VBS, mais pas en VBA, le premier problème ce situe à ce niveau la :
Set obj_wsh = WScript.CreateObject("WScript.Shell")

Sinon autre question, seriez vous comment faire pour lancer un script VBS depuis Word, la commande shell() ne semble pas vouloir fonctionner avec l'extension .VBS

Merci d'avance aux bonnes ames qui pourront m'aider !!
Afficher la suite 

4 réponses

Meilleure réponse
cs_Warning 517 Messages postés samedi 3 février 2001Date d'inscription 24 octobre 2006 Dernière intervention - 27 mars 2005 à 20:54
3
Merci
Essai de remplacer
Set obj_wsh = WScript.CreateObject("WScript.Shell")

Par
Set obj_wsh = CreateObject("WScript.Shell")

ou
Set obj_wsh = CreateObject("Shell")

Parce qu'en fait WScript n'est utilisé que par les scripts vbs ou js.


Warning
Admin Codes-Sources.com
http://www.decompiler-vb.net/

Merci cs_Warning 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 99 internautes ce mois-ci

Meilleure réponse
cs_Warning 517 Messages postés samedi 3 février 2001Date d'inscription 24 octobre 2006 Dernière intervention - 27 mars 2005 à 20:57
3
Merci
Sinon tu peux encore remplacer directement:
Set obj_wsh = WScript.CreateObject("WScript.Shell")
obj_wsh.SendKeys "{TAB}^c"

par :
SendKeys "{TAB}^c"

Car sendkeys est deja implementé dans VB et VBA.


Warning
Admin Codes-Sources.com
http://www.decompiler-vb.net/

Merci cs_Warning 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 99 internautes ce mois-ci

cs_Keliah 11 Messages postés lundi 24 mai 2004Date d'inscription 6 avril 2005 Dernière intervention - 28 mars 2005 à 11:22
0
Merci
Merci pour ton aide, en effet cela fonctionne directemement.

J'ai maintenant un dernier problème au niveau de la récupération de donnée :

Je voudrais pouvoir stocker dans une variable ce que je récupère en faisant un SendKeys "{TAB}^c"

Malheuresement je n'arrive pas à utiliser le clipboard de Word...

J'ai trouvé cette ligne, mais cela ne fonctionne pas, visiblement il faut que je déclare un objet mais je ne sais pas comment m'y prendre...

str_character = Clipboarddata.GetDataObject.GetData(DataFormats.Text).ToString()

Merci d'avance pour ceux qui auront une idée :)
cs_Warning 517 Messages postés samedi 3 février 2001Date d'inscription 24 octobre 2006 Dernière intervention - 28 mars 2005 à 13:52
0
Merci
tu met cette fonction quelque part après ta procedure:
Public Function GetOffClipboard() As Variant
Dim MyDataObj As New DataObject
MyDataObj.GetFromClipboard
GetOffClipboard = MyDataObj.GetText()
End Function

puis tu l'utilise dans ta procedure:
str_character
= CStr(GetOffClipboard)


Warning
Admin Codes-Sources.com
http://www.decompiler-vb.net/

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.