d'excel à word

L

laurent

Guest
je m'explique.

j'aurai besoin d'une macro qui me permetterai de rentrer des donnée excel dans un document word.
en fait j'ai deja fait une partie du boulout -seulement excel- où mon programme me permet de calculer un tas de truc. et ces données doivent etre mise en page sous word , d'ou eventuellement une solution qui renverrai apres execution de la macro excel les données dans un modele word.
si quelqu'un pouvait m'aider ce serait royal :]

merci d'avance.
 
K

Kotov

Guest
Bonjour,
Un exemple qui peut te venir en aide.

Préparation d'un fichier "réceptacle":
-Ouvres un document Word. Insère un champ de texte où tu veux (avec la barre outils formulaires).
-Double-clic sur le champ
-Dans les options renomme le signet ex: Sign1
-Enregistres ton document word (ex : C:\...\Kotov.doc)
-Ferme le document et quitte Word

Dans Excel :
-Ouvre un classeur
-Dans la feuille1, cellule A1, tape "Cà marche!!"
-Dans l'editeur VBA : Outils/Références/ coche Microsoft Word 8.0 Object Library 'A défaut Excel ne saura pas utiliser les objets Word
-Enregistre le classeur (ex : C\...\Kotov.xls)

Le but du jeu : transférer le texte de la cellule A1 d'Excel dans le champ "Sign1" de ton doc Word.

Code simplifié (on part du principe que la feuille active est la feuille1):
Sub Transfert()
Dim MonTexte As String ' variable qui recevra le texte de la cellule A1
MonTexte = ActiveSheet.Cells(1,1).Value ' La variable reçoit la valeur de la cellule A1

Dim MonChemin As string 'variable qui recevra le chemin pour ouvrir le doc
MonChemin = " C:\...\Kotov.doc" 'attribution du chemin à la variable

Dim MonWord As Word.Application 'Déclare l'appli Word
Dim MonDoc As Word.Document 'Déclare le document

Set MonWord = New Word.Application 'ouvre une appli Word
With MonWord
.Visible = True 'Si false, l'utilisateur ne voit pas Word
.Documents.Open filename := MonChemin 'Ouvre le doc
End With

Set MonDoc = MonWord.ActiveDocument 'Attribution du doc actif à la variable

MonDoc.Formfields("Sign1").Result = MonTexte 'Dans le doc actif, le champ Sign1 reçoit la valeur de la variable MonTexte

Set MonWord = nothing 'Libération de la mémoire
Set MonDoc = nothing
End Sub

Si je ne me suis pas planté (je tape en ce moment sur un PC qui n'a ni Word, Ni Excel pour vérifier), tu dois retrouver "Cà marche!!" dans ton doc Word.

Si tu as pigé le principe, çà doit t'ouvrir un nouvel horizon !
A titre perso, dans mon job, je dois tirer une synthèse à partir de 8 applications avant de prendre une décision, donc :
1. Copier/Coller en bloc des données dans un classeur Excel
2. Dans une feuille destinée au formatage et préparée une bonne fois pour toutes: le formatage des valeurs grâce aux fonctions Excel (Supprespace, Gauche, Droite, Trouve, Cnum, Si, ...300 fonctions à disposition)
3.Attribution de ces données à des tableaux de variables
4. Transfert vers un doc sous Word sur le principe exposé ci-dessus.
Résultat : en moins de deux minutes, une synthèse très pro contre plus de 20 minutes à la main.

Bonne soirée.
Kotov
 

Discussions similaires

Réponses
15
Affichages
894
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 760
Messages
2 091 795
Membres
105 074
dernier inscrit
JPATOUNE