ouais, moi j'avais plus dans l'idée de créer d'abord un document-support avec tout le texte qui ne changera pas déja écrit, puis placer des signets aux endroits qui vont recevoir les données, et de programmer l'arrivée de ces données aux bons endroits en vba avec l'evenement clic du bouton imprimer que j'ai fait.
Est-ce une bonne idée? Est-ce réalisable? et comment?
voila il faut que tu es ton fichier word avec le publipostage cad le "nom" de ton salaries ou tu veux qu'il soit
il faut creer une requete ac les donnees que tu veux exporter:
'exportation des données vers un fichier excel
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel3, "requete 1", "E:\requete etat.xls", True
'ouvre word
Dim wdApp As Word.Application
Set wdApp = CreateObject("Word.Application")
With wdApp
.Visible = True
'ouverture du fichier compta.doc
.Documents.Open "E:\compta.doc"
'realise le publipostage a partir du fichier excel
.ActiveDocument.MailMerge.Destination = wdSendToNewDocument
.ActiveDocument.MailMerge.Execute
.ActiveDocument.SaveAs "E:\ordonnances dupliquees\compta2.doc"
'impression
.PrintOut
.Documents("E:\ordonnances dupliquees\compta.doc").Close
.Documents("E:\ordonnances dupliquees\compta2.doc").Close
.Visible = True
.quit
End With
Set wdApp = Nothing
'suppression du fichier compta2.doc
Kill "E:\ordonnances dupliquees\compta2.doc"
en esperant que ca peut t'aider
tchao
Entre temps j'ai fait ça, et comme je ne veux pas l'avoir fait pour rien, je le mets qd même
Public Sub test(a_NomSalarie As String, a_Tache As String)
'Dim wdApp As Word.Application
'Dim wdDoc As Word.Document
Dim wdApp As Object
Dim wdDoc As Object
'Ouvre Word
'Set wdApp = New Word.Application
Set wdApp = CreateObject("Word.Application")
'Ouvre un document en se basant sur le template doc1.dot
Set wdDoc = wdApp.Documents.Add("c:\Doc1.dot")
With wdApp.Selection
'Se positionne sur le signet Nom
.GoTo -1, "Nom"
'Ecrit le nom du salarie
.TypeText a_NomSalarie
'Idem avec la tache
.GoTo -1, "Tache"
.TypeText a_Tache
End With
'Enregistre (sans ajouter à la liste des derniers fichiers ouverts
wdDoc.SaveAs "c:\test.doc", , , , False
'Ferme le doc
wdDoc.Close
'Quitte word
wdApp.Quit
'Détruit les objets
Set wdApp = Nothing
Set wdDoc = Nothing
End Sub
Public Sub test2()
test "toto", "qdsf"
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?