Page 1 sur 1

[R] Inserer du texte à un endroit précis d'un fichier word

Posté : sam. 14 janv. 2012 19:11
par parazitenew
Bonsoir,

J'ai deja trouvé des topics sur le sujet mais rien qui concerne mon problème avec exactitude.

Alors, j'ai commencé un codé un programme de création de factures, avec les commandes de _Word....
j'ai pu faire ouvrir un Modèle que j'ai crée, y inserer du texte et le sauvegarder sous un autre nom.

Le problème c'est que le texte est inseré à la fin du document, et ça ne m'arrange pas. Je sais que c'est à cause du "Range.insertAfter" ya aussi "Range.text" qui insere là où il ya le curseur (par défaut en haut du document)

ce que je veux c'est y inserer les données (Nom,Prénom, N° dossier, date etc...) qui sont lu à partir des input sur le GUI avec GUICtrlRead($inputX), à des endroits précis.
Ex:

Nom: XXX
Prénom: XXX

Je voudrai que les données soient écrits à la place du XXX

Y'aurait-il des fonctions qui permettent de positionner le curseur où je voudrai ?

Sinon si il ya un autre moyen pour réaliser mon programme je suis ouvert, ce n'est vraiment pas obligé que je travail avec les commande _Word par contre les factures devront êtres enregistrés sous .doc.

Merci de vos suggestions.

Mon script si ça peut aider:
► Afficher le texte
PS: Le programme est pour un oncle qui n'a pas envie de télécharger des progs du net parcequ'il s'y connais pas trop en informatique, j'ai pensais lui codé ce programme trés basique pour qu'il puisse créer ses factures en toute simplicité.

Re: [..]Inserer du texte à un endroit précis sur un fichier

Posté : sam. 14 janv. 2012 19:25
par PandiPanda
Bonsoir,
ceci peut être ? _WordDocFindReplace()

Re: [..]Inserer du texte à un endroit précis sur un fichier

Posté : sam. 14 janv. 2012 21:53
par Wardow
je suis peut être totalement hors sujet mais si tu dit a ton script de lancer une recherche dans le doc Word : le curseur se placeras peut être à l'endroit ou est le mot recherché

Re: [..]Inserer du texte à un endroit précis sur un fichier

Posté : dim. 15 janv. 2012 00:29
par parazitenew
PandiPanda a écrit :Bonsoir,
ceci peut être ? _WordDocFindReplace()
ça marche, non ça court!!!!! c'est exactement ce que je voulais, merci. Du coup voilà la nouvelle partie

Code : Tout sélectionner

$oWordApp = _WordCreate (@ScriptDir & "\Facture.doc", 0, 0)
            
            $oDoc = _WordDocGetCollection ($oWordApp, 0)
             _WordDocFindReplace($oDoc, "Ndc", GUICtrlRead($input1))
             _WordDocFindReplace($oDoc, "Pdc", GUICtrlRead($input2))
             _WordDocFindReplace($oDoc, "xxxx", GUICtrlRead($input4))
            _WordDocSaveAs($oDoc, @ScriptDir & "\Facture " & GUICtrlRead($input3) & ".doc")
            _WordQuit ($oWordApp, 0)
1. Il cherche "Ndc" dans le .doc et le remplace par ce qui est écrit dans le 1er input qui correspond au "Nom"
Le hic c'est qu'il respecte pas la casse de l'input mais ce lui du Find;

Ex:
le fait d'avoir mis "Ndc" veux dire que peu importe comment j'écris "jack" dans l'input la commande va mettre "Jack" 1ere lettre en MAJ le reste en minuscul. Lorsque j'vais mis "NDC" elle l'a remplacé par "JACK"

Ce qui est un soucis lorsque l'opérateur voudra mettre un Nom en MAJ ou en minuscul quand il veut. Je dois faire en fonction.

Une idée ? ^^ je continue de chercher de mon coté aussi.

Re: [..] Inserer du texte à un endroit précis d'un fichier w

Posté : dim. 15 janv. 2012 11:24
par mikell
Bah c'est plutôt bien que la casse soit forcée, comme ça quoi que tape l'opérateur, le nom sera bien formaté... par tradition dans les factures le nom est en majuscules et le prénom en minuscules, pour différencier Georges MARTIN de GEORGES Martin par exemple ^^