Page 1 sur 1

[R] Aide pour insérer du texte dans un formulaire Word

Posté : lun. 01 juin 2015 23:43
par Aurel
Bonjour,

Je suis en cours de création d'un script, je bloque sur un fichier Word 2013.

J'arrive bien a écrire dans un fichier Word lorsque je l'ouvre, mais le fichier s'ouvre en lecture seul et je ne peux donc l'enregistrer avec les modifications du script.

Auriez-vous des indices pour réussir mon script.

Code : Tout sélectionner

    #include <MsgBoxConstants.au3>
    #include <Word.au3>


        $oWord = _Word_Create(False, True)
        If @error <> 0 Then Exit MsgBox($MB_SYSTEMMODAL, " ", "Erreur de création document Word." & @CRLF & "@error = " & @error & ", @extended = " & @extended)

        ;On ouvre le fichier Word
        $oDoc = _Word_DocOpen($oWord, "c:\temp\Doc1.docx", Default, Default, True)
        If @error <> 0 Then Exit MsgBox($MB_SYSTEMMODAL, "Impression courbe", "Erreur d'ouverture 'Print.doc'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)

       $mavariable = "Bonjour"
       $mavariable2 = "Vous allez bien ?"
        ;Send ("bonjour")
        $oRange = _Word_DocRangeSet($oDoc, -1)
        Dim $asArray[2] = [$mavariable, $mavariable2]

        _Word_DocTableWrite($oRange, $asArray, 0)
 

Re: [..] Aide pour insérer du texte dans un formulaire Word

Posté : mar. 02 juin 2015 01:23
par parazitenew
Bonsoir,

Êtes vous sûr que le problème ne vient pas du fichier lui même, avant de toucher au script. Vérifiez dans les propriétés du document que la case "Lecture seule" ne soit pas cochée.

Une alternative est d'utiliser _WordDocSaveAs() au lieu de _WordDocSave()

Re: [..] Aide pour insérer du texte dans un formulaire Word

Posté : mar. 02 juin 2015 09:11
par Aurel
Bonjour parazitenew,

J'ai ajouté le script que j'utilise.

Par contre je n'ai pas de problème de droit sur le fichier Doc1.docx

Re: [..] Aide pour insérer du texte dans un formulaire Word

Posté : mar. 02 juin 2015 09:45
par jbnh
Salut,

Cfr doc de _Word_DocOpen
_Word_DocOpen ( $oAppl, $sFilePath [, $bConfirmConversions = False [, $iFormat = $WdOpenFormatAuto [, $bReadOnly = False
Vous avez mis True.

Re: [..] Aide pour insérer du texte dans un formulaire Word

Posté : mar. 02 juin 2015 09:51
par parazitenew
Bonjour,

Apparemment jbnh l'a trouvé :D je n'utilise pas la nouvelle version d'autoit, les fonctions sont légèrement différentes.

Re: [..] Aide pour insérer du texte dans un formulaire Word

Posté : mar. 02 juin 2015 09:57
par Aurel
Merci cela fonctionne correctement.
Merci a vous deux

Re: [R] Aide pour insérer du texte dans un formulaire Word

Posté : mar. 02 juin 2015 13:42
par Aurel
Par contre cela rentre le texte dans un tableau.

Avec Autoit est-il possible d’écrire un texte hors tableau?

Sinon est-il possible de sélectionner le nom du champ (ex: Texte1)

Re: [...] Aide pour insérer du texte dans un formulaire Word

Posté : mar. 02 juin 2015 14:20
par parazitenew
Tout dépend de la mise en forme de votre document word. Si vous savez exactement où mettre le texte (comme un formulaire par exemple), vous pouvez utilisez la fonction:

Code : Tout sélectionner

_Word_DocFindReplace()
Elle permet de trouver un texte ou un mot et de le remplacer par ce que vous voulez. Vous pouvez arranger la forme et la mise en page de votre document à votre aise, dans les champs destinés à mettre du texte mettez un mot unique, par exemple:
► Afficher le texte
Ma fonction serait donc:
► Afficher le texte
Donc vous pouvez mettre "texte1" sur votre document et le remplacer avec ce que vous souhaitez en utilisant la fonction, mais faites attention à respecter les paramètres de la fonction de la nouvelle version d'autoit. Elle pourrait différer de la mienne.

Re: [...] Aide pour insérer du texte dans un formulaire Word

Posté : mar. 02 juin 2015 15:08
par Aurel
Ok merci je vais tester.

par contre la cellule que je cherche a remplir est vide mais elle a un nom "texte1"

Re: [...] Aide pour insérer du texte dans un formulaire Word

Posté : mar. 02 juin 2015 22:28
par parazitenew
Aurel a écrit :Ok merci je vais tester.

par contre la cellule que je cherche a remplir est vide mais elle a un nom "texte1"
Vous devrez mettre quelque chose dans la cellule comme "texte1" par exemple. Et la valeur que vous voulez insérer remplacera le "texte1" à l'intérieur de la cellule.