Ecrire sous word a partir d'excel urgent!

Signaler
Messages postés
13
Date d'inscription
mercredi 26 janvier 2005
Statut
Membre
Dernière intervention
12 janvier 2006
-
Messages postés
13
Date d'inscription
mercredi 26 janvier 2005
Statut
Membre
Dernière intervention
12 janvier 2006
-
Bonjour
J'envoie certaine données qui sont dans un tableau d'excel vers une lettre type word.
j'arrive à envoyeer les données mais je voudrais savoir comme faire pour les envoyer à un endroit précis comme cela se fait par le biais d'un publipostage.Pour l'instant la mise en page se fait dans mon code (ex : chr$(13)...ect). Si par exemple j'ai dans ma lettre "NOM " , comment faire pour remplacer nom par la données d'excel souhaitée.
Merci de m'aider c'est très important.

Voici mon code :
Private Sub BtnOpenDoc_Click()


'Déclaration des variables
Dim FicDoc As Object
Dim i, cpt As Integer
Dim NomFic As String
Dim Test As Boolean

'Affectation de valeurs
cpt = 1
i = 2
Test = False
'Compte le nombre de client dans la base
Do While Cells(i, 4) <> ""
i = i + 1
Loop
'Boucle pour écrire dans le document word
Do While cpt < i
'Si la valeur de la cellule(cpt) dans la première colonne est égale à X
If UCase(Cells(cpt, 1)) = "X" Then
Test = True
'Création d'un objet de type word
Set FicDoc = CreateObject("Word.Application")
'Ouvre le fichier type
FicDoc.Documents.Open Filename:="C:\.Rappel.doc
'Alors Ecrtiture des données du client dans le document word
NomFic = Cells(cpt, 4)
FicDoc.Selection.typetext (Chr$(9) + Chr$(9) + Chr$(9) + Cells(cpt, 4) + " " + Cells(cpt, 5) + Chr$(13))
FicDoc.Selection.Typetext (Chr$(9) + Chr$(9) + Chr$(9) + Chr$(9) + Cells(cpt, 4) + " " + Cells(cpt, 5) + Chr$(13))
FicDoc.Selection.Typetext (Chr$(9) + Chr$(9) + Chr$(9) + Chr$(9) + Cells(cpt, 7) + Chr$(13))
FicDoc.Selection.Typetext (Chr$(9) + Chr$(9) + Chr$(9) + Chr$(9) + CStr(Cells(cpt, 9)) + " " + Cells(cpt, 8))
'Enregistre le fichier sous Mes document au nom du client
FicDoc.Activedocument.SaveAs NomFic
FicDoc.Quit
Cells(cpt, 1).ClearContents
End If
'Incrémentation du compteur
cpt = cpt + 1
Loop
'Test s'il y a des clients sélectionnés
If Test = True Then
MsgBox ("Document(s) créé(s)dans Mes Documents! ")
Else
MsgBox ("Vous n'avez aucun client sélectionné!")
End If
End Sub



Merci de coopération
Nath

3 réponses

Messages postés
62
Date d'inscription
mardi 25 mars 2003
Statut
Membre
Dernière intervention
16 octobre 2007

Bonsoir,

Il ya a une methode simple : Tu réalise un modèle de documment Word dans lequel tu mets des Signets aux endroits où tu veux mettre ton texte. Ensuite tu envoie tes données au bon endroit.

Je te joins un morceau de l'un mes codes pour te donner une idée.

Set WordApp = CreateObject("word.application.8")
Set WordDoc = WordApp.Documents.Open("[file://Serveur7/vol1/FICHE \\Serveur7\vol1\FICHE] .dot")

' NUMERO FT
WordApp.Selection.GoTo What:=wdGoToBookmark, Name:="Num_FT"
With WordApp.ActiveDocument.Bookmarks
.DefaultSorting = wdSortByName
.ShowHidden = False
End With
WordApp.Selection.TypeText Text:="123B"
' DATE CREATION
WordApp.Selection.GoTo What:=wdGoToBookmark, Name:="DATE_CREATION"
With WordApp.ActiveDocument.Bookmarks
.DefaultSorting = wdSortByName
.ShowHidden = False
End With
WordApp.Selection.TypeText Text:=Frm_donnees_FT.lbl_dt_creation_.Caption
0
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
10
Bonsoir,

J'ai eu ce même type de problème... IL suffit d'utiliser la fonction de recherche et de remplacement dans le document Word servant de modèle.

JE te laisse trouver le codage, pour réaliser cela... C'est un peu court ? Non ! voici comment faire...

- Ouvre Word et ton document modèle où "NOM" figure comme mot clé à remplacer par ce que tu veux...
- Lance l'enregistreur de macro.
- Tu vas maintenant faire les manipulations de remplacement... donc CRTL+F, complète le champ de recherche par nom, et celui de remplacement par "autre chose pour l'exemple".
- Arrêt la création de la macro.
- Ouvre VBA et récupère le code créé. Tu peux le réinjecter dans le VBA d'Excel, en suppprimant au passage le superflu, et en remplacant "autre chose pour l'exemple" par une variable contenant la donnée souhaitée contenue une cellule.

voilà... c'était la démarche que j'avais utilisé, pleine d'enseignement...

Amicalement,
Us.
0
Messages postés
13
Date d'inscription
mercredi 26 janvier 2005
Statut
Membre
Dernière intervention
12 janvier 2006

Bonjour
J'ai opté pour ta solution zoglub14 mais mon problème c'est que le code ne reconnait pas le signet. il me dit qu'il n'existe pas alors qu'il est bien créer sous word

Nath
0