Gérard Ducouret
pour faciliter la suite on peut dire
set doct=Documents.Add "C:\Program Files\Microsoft
Office\Modèles\norma1l.dot", False
et manipuler l'objet doct
pour piloter ww à partir d'Excel, voir
http://jacxl.free.fr/cours_xl/cours_xl_jac.html#WWexXL
si ça ne marche pas, reviens sur le forum
"G.D." <gerard....@wanadoo.fr> a écrit dans le message news:
#yCE8So0BHA.2816@tkmsftngp05...
"j@c" <jacques....@noos.fr> a écrit dans le message news:
e1bC3up0BHA.1160@tkmsftngp04...
Gérard
"j@c" <jacques....@noos.fr> a écrit dans le message de news:
eBw1Lxp0BHA.2508@tkmsftngp03...
= Remplir un formulaire Word avec des données Excel
La question de Gérard n'est pas très claire :
- Word possède les outils de fusion pour ce sujet
sans avoir besoin en principe de programmation
- un formulaire Word est d'ordinaire construit sur
des {champs} plutôt que sur des [signets]
Néanmoins pour répondre à la première partie
de la question voici comment *depuis Excel*
créer un nouveau document Word à partir d'un modèle
Public Sub FormulaireDansWord()
Set WordApp = CreateObject("Word.Application")
WordApp.Visible = True
WordApp.Documents.Add ("MonFormulaire.dot")
End Sub
le fichier .dot du modèle doit être dans le répertoire
des modèles Word sinon préciser son chemin complet
Anacoluthe
« Quel est le plus long chemin d’un point à un autre ? »
- Jean Tardieu
"G.D." a écrit
Gérard
"Anacoluthe" <nopub_...@wanadoo.fr> a écrit dans le message de news:
a7k5ss$185$1...@wanadoo.fr...
Gérard
Le partage de données Excel -> Word peut prendre de multiples pistes
- les données non structurées peuvent souvent être structurées
dans un feuille spéciale destinée à une fusion dans Word
- les objets excel depuis la simple cellule jusqu'au graphique
peuvent être incorporés ou liés dans un document word
(copier / collage spécial / ..Excel Objet) +/- avec liaison
Concernant la programmation vba, la syntaxe
application.objet.méthode/propriété est la même partout :
Exemple:
depuis excel copier la valeur de la cellule A1 de la feuille Feuil1
du classeur courant dans le 3ème champ-texte formulaire
du document Word MonDoc.doc s'écrit (simplement??) :
WordApp.Documents("MonDoc.doc").FormFields(3).Result = _
ActiveWorkbook.Sheets("Feuil1").Range("A1").Value
Cette instruction suppose
1. Excel actif avec un classeur ouvert
2. Une instance WordApp de Word a été créée (CreateObject)
3. Le fichier MonDoc ouvert dans cette instance ( open )
4. Au moins 3 champs de formulaire dans MonDoc.doc
Pour placer la même valeur à l'endroit du signet « bingo »
WordApp.Documents("MonDoc.doc").Bookmarks("bingo").Range.Text = _
ActiveWorkbook.Sheets("Feuil1").Range("A1").Value
etc .. etc ...
Simple vba ?
Pas tant que ça : vba est le roi de la bidouille et de l'embrouille
il est difficile d'écrire du code propre pour des utilisateurs externes
(gestion de toutes les situations, gestion des erreurs etc)
Aussi nous ne le répéterons jamais assez :
N'utilisez VBA que si vraiment il n'y a pas moyen de faire autrement
... et il y a presque toujours moyen de faire autrement !!!!!
Bon courage
Anacoluthe
Va Bien Absent
"G.D." a écrit
> Les données d'Excel que je veux placer dans le document Word ne sont pas
> rangées en base de données et ne se prêtent donc pas à une
> fusion/publipostage. De plus, des données en provenance de Ms Project
> devront aussi être insérées.... Mais si je sais le faire pour l'un, je
> saurais le faire pour l'autre...
> Je ne suis pas expert en Word, mais il me semble avoir remarqué que les
> zones de texte d'un formulaire correspondaient à autant de signets. D'où
ma
> question : comment ces zones ou signets ou champs. Mais il y a peut être
une
> approche plus immédiate?
> Je voulais dire : comment *remplir* ces zones ou signets ou champs?
> Merci,
>
> Gérard
Je me suis fait piéger par Gérard qui a posté dans mpfe et mpfw !!!
Chers excellants oubliez tout ce que j'ai dit sur VBA :-)))
Anacoluthe (uniquement sur word en principe)
« Si tout ici-bas était excellent, il n’y aurait plus rien d’excellent »
- DIDEROT