Page 1 sur 1

[R] Intégrer du code AutoIt dans une macro Excel

Posté : ven. 25 juin 2010 11:18
par CarolineB
Bonjour,

je souhaiterais utiliser un bout de code AutoIt dans une macro Excel mais apparemment Excel ne reconnaît pas les fonctions. J'ai pourtant ajouter la référence AutoItX. Voici le code en question :

Code : Tout sélectionner

Run("le nom de mon programme") ;cette fonction marche
Sleep(10000) ;VBA ne reconnaît pas la commande Sleep

Dim titre as string
titre = WinGetTitle("[active]") ;fonction non reconnue par VBA
WinWaitActive(titre, "") ;idem
Faut-il ajouter une référence ou utiliser une syntaxe particulière ?

CarolineB

Re: [..] Intégrer du code AutoIt dans une macro Excel

Posté : ven. 25 juin 2010 11:26
par jbnh
Bonjour, avez-vous jeté un oeil au fichier d'aide autoitX ?

Re: [..] Intégrer du code AutoIt dans une macro Excel

Posté : ven. 25 juin 2010 16:31
par CarolineB
Le fichier d'aide depuis AutoIt ou sur ce site ?

Re: [..] Intégrer du code AutoIt dans une macro Excel

Posté : ven. 25 juin 2010 16:41
par jbnh
Le fichier d'aide dans votre dossier autoit (C:\Program Files\AutoIt3\AutoItX\AutoItX.chm)

Re: [..] Intégrer du code AutoIt dans une macro Excel

Posté : mer. 30 juin 2010 19:08
par grimgrim44
bonjour,

pourquoi passer par une macro excel, alors que l'on peux utiliser autoit pour gérer entièrement une page excel grâce au fonction du Excel.au3 ?

Re: [..] Intégrer du code AutoIt dans une macro Excel

Posté : jeu. 01 juil. 2010 09:13
par CarolineB
Parce que cette fonction doit pouvoir être lancée depuis un tableur Excel donc autant intégrer le code dans une macro VBA.

Si je fais l'inverse : je crée un .exe autoit avec Excel.au3, quelle est la fonction dans VBA pour lancer ce .exe ?

Re: [..] Intégrer du code AutoIt dans une macro Excel

Posté : jeu. 01 juil. 2010 10:37
par CarolineB
Pour jbnh,

J'ai effectivement trouvé ce que je cherchais, j'utilise la COM interface mais il y a encore un bug :

je commence par Set oAutoIt = WScript.CreateObject("AutoItX3.Control") et VBA me répond :
"Variable non définie" à propos de WScript,

j'ai essayé de déclarer WScript mais je ne trouve pas le type adéquat.

Re: [..] Intégrer du code AutoIt dans une macro Excel

Posté : jeu. 01 juil. 2010 11:43
par CarolineB
En me balladant sur des forums anglais j'ai trouvé ce code

Dim objShell
Dim WScript
Set WScript = CreateObject("WSH.WScript")
Set objShell = CreateObject("WScript.Shell")
objShell.Run "monlogiciel.exe"
WScript.Sleep 1000


mais nouveau bug sur la ligne en gras : "Un composant ActiveX ne peut pas créer d'objet"

any idea ?

Re: [..] Intégrer du code AutoIt dans une macro Excel

Posté : jeu. 01 juil. 2010 12:12
par CarolineB
Je précise que j'ai bien suivi la procédure : taper regsvr.exe AutoItX.dll dans le fenêtre de commande,
faut-il une autre dll ?

Re: [..] Intégrer du code AutoIt dans une macro Excel

Posté : dim. 04 juil. 2010 11:16
par moutelous
Bonjour,
CarolineB a écrit :mais nouveau bug sur la ligne en gras : "Un composant ActiveX ne peut pas créer d'objet"
Vous essayez ici de déclarer un objet WSH et d'utiliser WScript dans une macro VBA .... Ce n'est pas ce que vous voulez faire ...

Vous, vous voulez utiliser un objet AutoitX3 pour utiliser une méthode AutoitX dans une Macro Excel ...

Déclarez votre objet comme dans l'exemple ci-dessous et tout rentrera dans l'ordre :

Code : Tout sélectionner

Sub Macro1()
Dim oAIX As Object
Set oAIX = CreateObject("AutoItX3.Control")
Range("B6").Select
ActiveCell.FormulaR1C1 = "44"
oAIX.Sleep 5000  'cinq secondes
Range("C6").Select
ActiveCell.FormulaR1C1 = "55"
End Sub
Dans cet exemple "44" est écrit dans la cellule B6 et 5 secondes après 55 est écrit dans la cellule C6

A+

Re: [..] Intégrer du code AutoIt dans une macro Excel

Posté : lun. 05 juil. 2010 09:38
par CarolineB
Super, ça marche !

Merci