Aide et conseils concernant AutoIt et ses outils.
GMH
Niveau 6
Messages : 227 Enregistré le : dim. 24 juin 2012 14:56
Status :
Hors ligne
#1
Message
par GMH » lun. 14 mars 2016 20:06
Bonjour,
Je tente de tester le code trouvé à l'adresse (message #6) :
http://autoitscript.fr/forum/viewtopic.php?p=6223
J'obtiens ces deux messages d'erreur :
#include <Word.au3>
#include <IE.au3>
; Ouverture d'un document word type
$oWordApp = _WordCreate ("")
error: _WordCreate () : undefined function
$oDoc = _WordDocOpen ($oWordApp, @ScriptDir & "\Document type.doc")
error: _WordDocOpen () : undefined function
Quelle peut en être la cause ?
Modifié en dernier par
GMH le mer. 16 mars 2016 21:17, modifié 1 fois.
mikell
Spammer !
Messages : 6292 Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status :
Hors ligne
#2
Message
par mikell » lun. 14 mars 2016 21:01
L'obsolescence ...
Le topic date de 2008, depuis l'udf Word.au3 a évolué et notamment le nom des fonctions (_Word_Create() , etc)
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
GMH
Niveau 6
Messages : 227 Enregistré le : dim. 24 juin 2012 14:56
Status :
Hors ligne
#3
Message
par GMH » lun. 14 mars 2016 21:21
Effectivement...un trait de soulignement se glisse après le mot Word dans chacune des fonctions... On n'arrête pas le progrès !
Les signalements d'erreur ont disparu, mais le programme plante...
Existe-t-il une fonction qui permette de fixer le thème de Word que l'on souhaite ?
Merci à vous.
GMH
Niveau 6
Messages : 227 Enregistré le : dim. 24 juin 2012 14:56
Status :
Hors ligne
#5
Message
par GMH » mar. 15 mars 2016 15:41
Merci beaucoup.
Voici mon code... qui malheureusement ne remplit pas ma feuille Word du contenu d'une page Web, via le presse-papier :
Pouvez-vous me dire où je fais erreur ?
#include <IE.au3>
#include <Word.au3>
Func Main()
Local $objWord = _Word_Create()
$objDoc = _Word_DocAdd($objWord)
$objDoc.ApplyTheme("C:\Users\portable\AppData\Roaming\Microsoft\Templates\Document Themes\MonTheme.thmx")
$objDoc.Visible = 1
send("{PGDN 5}")
; Ouverture du fichier html et copie
$oIE = _IECreate (@ScriptDir & "\fichiersWeb\monFichierWeb.html")
sleep(1000)
Send("^a") ; sélection (= CTRL + a)
sleep(100)
Send("^c") ; copie dans le presse-papier (= CTRL + c)
Winclose(@ScriptDir & "\fichiersWeb\monFichierWeb.html")
$objDoc.Text = ClipGet() ; récupération du contenu du presse-papier, versement dans la feuille Word
sleep(2000)
EndFunc
Main()
jguinch
Modérateur
Messages : 2515 Enregistré le : lun. 14 févr. 2011 22:12
Status :
Hors ligne
#6
Message
par jguinch » mer. 16 mars 2016 19:55
Code : Tout sélectionner
#include <Word.au3>
#include <IE.au3>
Local $oIE = _IECreate("http://perdu.com")
Local $sText = _IEBodyReadText($oIE)
_IEQuit($oIE)
Local $objWord = _Word_Create()
$objDoc = _Word_DocAdd($objWord)
$objDoc.ApplyDocumentTheme ("C:\Users\portable\AppData\Roaming\Microsoft\Templates\Document Themes\MonTheme.thmx")
Sleep(100)
$oRange = _Word_DocRangeSet($objDoc, -1)
$oRange.Select
$oRange.InsertBefore($sText)
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
walkson
Modérateur
Messages : 1037 Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status :
Hors ligne
#7
Message
par walkson » mer. 16 mars 2016 21:06
Bonsoir,
Je me suis fait coiffer sur le poteau !
J'ai un code à proposer mais il est pas beau !
D'abord, je n'aime pas les "send') et en suite je ferme IE par ProcessClose() ce qui n'est pas terrible mais _IEQuit() semble ne pas vouloir fonctionner avec une adresse sur le PC (pas de HTTP)
Code : Tout sélectionner
#include <IE.au3>
#include <Word.au3>
Func Main()
Local $objWord = _Word_Create()
$objDoc = _Word_DocAdd($objWord)
$objDoc.ApplyTheme("C:\Users\portable\AppData\Roaming\Microsoft\Templates\Document Themes\MonTheme.thmx")
$objDoc.Visible = 1
send("{PGDN 5}")
; Ouverture du fichier html et copie
$oIE = _IECreate (@ScriptDir & "\WWWW.html")
Sleep(1000)
Send("^a") ; sélection (= CTRL + a)
sleep(100)
Send("^c") ; copie dans le presse-papier (= CTRL + c)
;_IEQuit($oIE)
Const $wdPasteDefault = 0
$objWord.Select
$objWord.Selection.PasteAndFormat($wdPasteDefault) ; récupération du contenu du presse-papier, versement dans la feuille Word
ProcessClose("iexplore.exe")
EndFunc
Main()
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
GMH
Niveau 6
Messages : 227 Enregistré le : dim. 24 juin 2012 14:56
Status :
Hors ligne
#8
Message
par GMH » mer. 16 mars 2016 21:11
merci à tous deux.
Le code de jGuinch fonctionne uniquement avec une adresse sur l'Internet. La copie ne se fait pas si le fichier html se trouve sur le disque dur.
Dans les deux cas, le Thème n'est pas appliqué.
GMH
Niveau 6
Messages : 227 Enregistré le : dim. 24 juin 2012 14:56
Status :
Hors ligne
#9
Message
par GMH » mer. 16 mars 2016 21:17
Le code de Walkson que je viens de tester fonctionne même avec un fichier Html du disque dur.
D'autre part, le thème est bien chargé.
J'ai l'impression que la question est résolue.
Merci à tous deux.
walkson
Modérateur
Messages : 1037 Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status :
Hors ligne
#10
Message
par walkson » mer. 16 mars 2016 21:44
Je viens de tester et ça marche
Code : Tout sélectionner
$objWord.ActiveDocument.ApplyDocumentTheme ("C:\Program Files\Microsoft Office\Document Themes 12\Verve.thmx")
L'adresse est celle indiquée par l'aide VBA
Code : Tout sélectionner
Visual Basic pour Applications
ActiveDocument.ApplyDocumentTheme _
"C:\Program Files\Microsoft Office\" & _
"Document Themes 12\Verve.thmx"
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
GMH
Niveau 6
Messages : 227 Enregistré le : dim. 24 juin 2012 14:56
Status :
Hors ligne
#11
Message
par GMH » jeu. 17 mars 2016 10:08
Votre code fonctionne. Mais celui de jguinch ne transcrit dans la page Word qu'un zéro. Sans doute l'ID de $oIE plutôt que le contenu $sText .