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

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
CarolineB
Niveau 2
Niveau 2
Messages : 15
Enregistré le : mar. 20 avr. 2010 10:05
Status : Hors ligne

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

#1

Message 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
Modifié en dernier par CarolineB le lun. 05 juil. 2010 09:39, modifié 4 fois.
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

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

#2

Message par jbnh »

Bonjour, avez-vous jeté un oeil au fichier d'aide autoitX ?
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
CarolineB
Niveau 2
Niveau 2
Messages : 15
Enregistré le : mar. 20 avr. 2010 10:05
Status : Hors ligne

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

#3

Message par CarolineB »

Le fichier d'aide depuis AutoIt ou sur ce site ?
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

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

#4

Message par jbnh »

Le fichier d'aide dans votre dossier autoit (C:\Program Files\AutoIt3\AutoItX\AutoItX.chm)
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
grimgrim44
Niveau 1
Niveau 1
Messages : 7
Enregistré le : mer. 30 juin 2010 19:02
Status : Hors ligne

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

#5

Message 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 ?
CarolineB
Niveau 2
Niveau 2
Messages : 15
Enregistré le : mar. 20 avr. 2010 10:05
Status : Hors ligne

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

#6

Message 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 ?
CarolineB
Niveau 2
Niveau 2
Messages : 15
Enregistré le : mar. 20 avr. 2010 10:05
Status : Hors ligne

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

#7

Message 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.
CarolineB
Niveau 2
Niveau 2
Messages : 15
Enregistré le : mar. 20 avr. 2010 10:05
Status : Hors ligne

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

#8

Message 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 ?
CarolineB
Niveau 2
Niveau 2
Messages : 15
Enregistré le : mar. 20 avr. 2010 10:05
Status : Hors ligne

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

#9

Message 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 ?
Avatar du membre
moutelous
Niveau 6
Niveau 6
Messages : 229
Enregistré le : sam. 09 févr. 2008 19:51
Localisation : Rennes
Status : Hors ligne

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

#10

Message 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+
A+
CarolineB
Niveau 2
Niveau 2
Messages : 15
Enregistré le : mar. 20 avr. 2010 10:05
Status : Hors ligne

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

#11

Message par CarolineB »

Super, ça marche !

Merci
Répondre