| |
Membre enregistré 2 messages |
|
Posté le 15 novembre 2016 - 17:35 |
Bonjour ,
je souhaiterai cocher par programmation des cases à cocher que j'ai paramétré dans un document word.
j'ai essayé d'utiliser ceci
Word>>FormFields(1)>>CheckBox>>value=1
mais j'ai un message d'erreur
quelqu'un a une idée ? |
| |
| |
| | | |
|
| | |
| |
Posté le 15 novembre 2016 - 17:44 |
Bonjour Le bout de code complet peut être? Le message d'erreur?
Merci |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 2 messages |
|
Posté le 15 novembre 2016 - 18:08 |
j'ai trouvé et cela fonctionne !
Word>>ActiveDocument>>FormFields(1)>>CheckBox>>value=1 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 23 messages |
|
Posté le 24 février 2017 - 17:34 |
Bonjour, voila mon probleme : j'ai un fichier word avec des champs predefinis, je voudrais a partir de windev remplacer ces champrs par des valeurs. exemple pour remplacer le champ "champ1" par la valeur "valeur_a_mettre": doc1=OleWord>>Documents>>Open("c:\conv\D-SME-16069-V1.docx",False,False) doc1>>selection>>replace ( "$champ1$","valeur_a_mettre" ) message d'erreur sur la ligne replace : Vous accédez au membre Automation selection. Erreur 80020006, Nom inconnu qui peut m'aider?
-- MAP |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 68 messages Popularité : +2 (2 votes) |
|
Posté le 27 février 2017 - 11:22 |
Bonjour :
si dans ton fichier word tu cherche a modifier une balise ville nommée (MDS_cpville) par la contenu de ta variable sMdscpville il suffit de faire :
word>>Selection>>Find>>Execute("MDS_cpville") word>>selection>>Typetext (sMdscpville) |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 23 messages |
|
Posté le 27 février 2017 - 12:20 |
Bonjour, excuse moi mais je ne sais pas ce que tu appelles une balise. en fait, dans word, je suis alle dans "quickpart", "champ", "inserer un champ", et comme type de champ c'est un champ de type "variabledoc" visiblement c'est ce qui cloche
-- MAP |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 23 messages |
|
Posté le 27 février 2017 - 12:45 |
voila mon code complet pour le test : LOCAL WdFindContinue est un entier = 1 WdReplaceAll est un entier = 1 QUAND EXCEPTION DANS // Déclaration d'un objet automation OleWord est un objet Automation dynamique OleWord=allouer un objet Automation "Word.Application" doc1 est un objet Automation dynamique FAIRE RENVOYER Faux SINON OleWord>>Visible=False OleWord>>ScreenUpdating=False doc1=OleWord>>Documents>>Open("c:\conv\test.docx",False,False) doc1>>Selection>>Find>>Execute("champ1") doc1>>selection>>Typetext ("essai") doc1>>Close() OleWord>>Quit() libérer doc1 libérer OleWord RENVOYER Vrai FIN
voila mon code erreur complet :
Erreur à la ligne 24 du traitement Clic sur Bouton1. Vous accédez au membre Automation Selection. Erreur 80020006, Nom inconnu
----- Informations techniques -----
Projet : GesMap
Appel WL : Traitement de 'Clic sur Bouton1' (pilotword.Bouton1), ligne 24, thread 0
Que s'est-il passé ? Vous accédez au membre Automation Selection. Erreur 80020006, Nom inconnu
Code erreur : 2208 Niveau : erreur fatale
Dump de l'erreur du module 'wd220vm64.dll' (22.0.122.5). Identifiant des informations détaillées (.err) : 130004 Informations supplémentaires : EIT_PILEWL :
-- MAP |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 23 messages |
|
Posté le 27 février 2017 - 13:02 |
pour info, j'utilise word 2016
-- MAP |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 68 messages Popularité : +2 (2 votes) |
|
Posté le 27 février 2017 - 14:06 |
ce que j'appelle une balise c'est un mot quelconque dans le word que tu veux remplacer. Dans mon cas dans le word il y avait la balise(=le mot) "MDS_cpville" de renseigner 2 fois. C'est ce mot qui sera remplacé par le vrai nom de ville contenu dans la variable sMdscpville. Pa besoin de champs variabledoc.
Toi ta fonction recherche le mot "champ1" pour le remplacer par "essai"
Par contre ta syntaxe 'ouverture de word me semble curieuse, essaye ca plutot :
OleWord est un objet Automation dynamique OleWord = allouer un objet Automation "Word.application" OleWord >>Documents>>Open("c:\conv\test.docx")
j'ai pas compris l'utilité des 2 objets Automation dynamique |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 23 messages |
|
Posté le 27 février 2017 - 14:20 |
maintenant ca fonctionne. Merci beaucoup de ton aide
-- MAP |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 23 messages |
|
Posté le 27 février 2017 - 14:21 |
si tu ne trouves pas que j'abuse, puis-je te demander aussi la chose suivante : comment inserer une image? meme processus?
-- MAP |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 23 messages |
|
Posté le 27 février 2017 - 15:01 |
un probleme secondaire : en fait quand les mots a remplacer sont dans un entete ou un pied de page, cela ne fonctionne pas, cela met en debut de document la nouvelle version du texte
-- MAP |
| |
| |
| | | |
|
| | |
| |
Posté le 27 février 2017 - 15:19 |
Bonjour,
fais une recherche sur ce forum...
de mémoire, il faut d'abord lsiter les zones, puis faire un remplacement dans chaque zone
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
A votre disposition : WXShowroom.com, WXReplication (open source) et maintenant WXEDM (open source)
Plus d'information sur http://fabriceharari.com
Le 2/27/2017 à 9:01 AM, Manuel ANTOLIN a écrit :
un probleme secondaire : en fait quand les mots a remplacer sont dans un entete ou un pied de page, cela ne fonctionne pas, cela met en debut de document la nouvelle version du texte
-- MAP |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 23 messages |
|
Posté le 27 février 2017 - 15:29 |
je n'ai trouve nulle part comment les lister justement, et aussi bien ici que sur le site microsoft (le foutoir) ce n'est pas precise
-- MAP |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 68 messages Popularité : +2 (2 votes) |
|
Posté le 27 février 2017 - 17:12 |
Je n'ai pas eu a modifier les en-têtes et pieds de page n a ajouter d'image, je ne connais pas encore le process désolé. Par contre quand tu auras trouvé, je suis preneur si jamais l'envie te dis de poster la manip ici ... |
| |
| |
| | | |
|
| | |
| |
Posté le 27 février 2017 - 20:11 |
Comme je le disais précédemment, la réponse EST dans ce forum...
Le 2/27/2017 à 11:12 AM, NoName a écrit :
Je n'ai pas eu a modifier les en-têtes et pieds de page n a ajouter d'image, je ne connais pas encore le process désolé. Par contre quand tu auras trouvé, je suis preneur si jamais l'envie te dis de poster la manip ici ... |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 962 messages Popularité : +183 (185 votes) |
|
Posté le 27 février 2017 - 23:47 |
hello, regarde par ici : https://forum.pcsoft.fr/fr-FR/pcsoft.fr.windev/98868-rewordselectionfindexecute-137932/read.awp et l'utilisation de signets serait sans doute plus performante pour le remplacement de champs.
-- Ami calmant, J.PMessage modifié, 27 février 2017 - 23:48 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 23 messages |
|
Posté le 28 février 2017 - 10:32 |
bonjour, j'ai essaye aussi cette solution, mais certaines choses ne passent pas, je ne sais pas si c'est du a office 16 ou a windev22 bien que je pense que c'est un probleme OLE. en plus je ne trouve nulle part les syntaxes OLE, et du coup ca devienyt tres complique pour moi ActivePane>>View>>SeekView -> ne fonctionne pas et fait une erreur (ne reconnait pas activepane) mystoryRange>>Find>>Execute(sChRecherche,Faux,Vrai,Faux,Faux,Faux,Vrai,1,Faux,sChRemplace,2) ne change rien.
En fait, le probleme est que maintenant je parviens a changer dans le corps, mais rien a faire dans l'entete ou le bas de page
-- MAP |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 23 messages |
|
Posté le 28 février 2017 - 10:35 |
Fabrice, il est clair que si je trouve comment changer dans les entetes et le pied de page ainsi que l'insertion d'images, je posterai. C'est curieux que pcsoft ne nous aide pas vraiment la dessus j'esêrais beaucoup justement avec leur module TTX mais pour le moment il est a eviter, on ne peut rien faire avec
-- MAP |
| |
| |
| | | |
|
| | |
| |
Posté le 01 mars 2017 - 14:32 |
Bonjour,
Cet exemple fonctionne correctement dans mon programme.
PROCEDURE cWord::SeekView(nEtatView=0, bSeek=Vrai)
// pour éviter que Word se mette en erreur QUAND EXCEPTION DANS :m_xWord>>ActiveWindow>>View>>SeekView=nEtatView FAIRE bSeek=Faux RETOUR FIN
Valeur pour le nEtatView
//wdSeekCurrentPageFooter = 10 //wdSeekCurrentPageHeader = 9 //wdSeekEndnotes =8 //wdSeekEvenPagesFooter = 6 //wdSeekEvenPagesHeader = 3 //wdSeekFirstPageFooter = 5 //wdSeekFirstPageHeader = 2 //wdSeekFootnotes = 7 //wdSeekMainDocument = 0 //wdSeekPrimaryFooter = 4 //wdSeekPrimaryHeader = 1
Cordialement,
E. Rossi |
| |
| |
| | | |
|
| | |