Page 1 sur 1
[R] - Exécuter une macro Excel
Posté : ven. 10 avr. 2009 12:18
par Apprentiweb
Bonjour à tous,
Après avoir écumer plusieurs forum et fait plusieurs tests infructueux, je m'en remet à vous.
Je cherche à exécuter une macro excel après avoir ouvert un fichier Excel, contenant la dite macro.
Je vous mets le code si cela peut vous aider.
► Afficher le texte
Code : Tout sélectionner
$oExcel = ObjCreate("Excel.application")
with $oExcel
.visible = 1
.WorkBooks.Open("c:\TestLiaison\ListeLiaisons.xls")
EndWith
En espérant que vous pourrez m'aider ?
Merci d'avance
Re: [..] - Exécuter une macro Excel
Posté : sam. 11 avr. 2009 14:09
par Apprentiweb
Le seul moyen que j'ai trouvé est d'envoyer les raccourcis clavier avec la fonction SEND.
Voici mon le code utilisé.
► Afficher le texte
Code : Tout sélectionner
;Ouverture de l'application Excel
$oExcel = ObjCreate("Excel.application")
;Ouverture du fichier Excel
with $oExcel
.visible = 1
.WorkBooks.Open("c:\TestLiaison\ListeLiaisons.xls")
EndWith
;Génération du tableau contenant la liste des fichiers Excel présent dans le répertoire spécifié
$lstfich = _FileListToArray3($repanalys, "*.xls", 0,1,1)
;Ecriture dans le fichier Excel des données du tableau
for $element in $lstfich
if not IsInt($element) Then
;Exclusion des fichiers présent dans le répertoire Program Files
$valexclu1 = stringleft($element,StringLen("c:\Program files"))
;Exclusion des fichiers présent dans le répertoire All users
$valexclu2 = StringLeft($element,StringLen("C:\Documents and Settings\All Users"))
;Exclusion des fichiers présent dans le répertoire Local Settings\temp
$valexclu3 = StringLeft($element,StringLen("C:\Documents and Settings\Nicolas\Local Settings\Temp"))
$valexclu4 = "c:\TestLiaison\ListeLiaisons.xls"
if $valexclu1 <> "c:\Program files" And $valexclu2 <> "C:\Documents and Settings\All Users" And $valexclu3 <> "C:\Documents and Settings\Nicolas\Local Settings\Temp" And $valexclu4 <> "c:\TestLiaison\ListeLiaisons.xls" Then
Send($element)
send("{ENTER}")
EndIf
EndIf
Next
;Lancement de la macro contenu dans le fichier Excel
[color=#FF0000][b]send("!o")
Sleep(100)
send("m")
Sleep(100)
send("m")
Sleep(100)
send("Traitement_Auto")
sleep(100)
send("{ENTER}")[/b][/color]