Ecrire sous word a partir d'excel urgent!

nathtonath Messages postés 13 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 12 janvier 2006 - 28 oct. 2005 à 16:35
nathtonath Messages postés 13 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 12 janvier 2006 - 31 oct. 2005 à 11:21
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

zoglub14 Messages postés 62 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 16 octobre 2007
28 oct. 2005 à 21:21
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
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
28 oct. 2005 à 23:21
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
nathtonath Messages postés 13 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 12 janvier 2006
31 oct. 2005 à 11:21
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
Rejoignez-nous