[vba word]Publipostage -->fusion

Publipostage -->fusion [vba word] - VB/VBA/VBS - Programmation

Marsh Posté le 27-06-2006 à 10:19:44    

bonjour, je dois ajouter des informations d'une feuille word au publipostage (fusion) car j'aurai des documents fixes et des fichiers variables.Pour cela je dois utiliser vba word, j'ai inscri le code ci dessous et ça ne marche pas:Il me dit que le fichier est corrompu, ça veut dire quoi svp
 

Code :
  1. Private Sub CmdAjout_Click()
  2.    
  3.     Dim AppWord As Word.Application
  4.     Dim App As Words
  5.     Dim mvarDocumentId As Variant
  6.    
  7.    
  8.     Set AppWord = CreateObject("Word.Application.8" )
  9.     Set mvarDocumentId = AppWord.Documents.Add(CStr("chemin du fichier DOC" ) + CStr("Nom du fichier DOC" ), False)
  10.     AppWord.ActiveDocument.MailMerge.MainDocumentType = wdFormLetters
  11.     AppWord.ActiveDocument.MailMerge.OpenDataSource Name:="" & "Nom du fichier DOC", ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, AddToRecentFiles:=True, PasswordDocument:="", PasswordTemplate:="", WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, format:=wdOpenFormatAuto, Connection:="DSN=Text Files;DBQ=" & "" & ";DefaultDir=" & "" & ";DriverId=27;MaxBufferSize=2048;PageTimeout=5;", SQLStatement:="SELECT * FROM `Nom du fichier DOC`", SQLStatement1:=""
  12.    
  13.     With AppWord.ActiveDocument.MailMerge
  14.     .Destination = wdSendToNewDocument
  15.     .MailAsAttachment = True
  16.     .MailAddressFieldName = ""
  17.     .MailSubject = ""
  18.     .SuppressBlankLines = True
  19.     With .DataSource
  20.     .FirstRecord = wdDefaultFirstRecord
  21.     .LastRecord = wdDefaultLastRecord
  22.     End With
  23.     .Execute Pause:=True
  24.     End With
  25.     AppWord.ActivePrinter = "PDFCreator"
  26.    '"PDFCreator"
  27.     AppWord.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:=wdPrintDocumentContent, Copies:="", Pages:="", PageType:=wdPrintAllPages, Collate:=True, Background:=True, PrintToFile:=False
  28.     AppWord.ActivePrinter = "PDFCreator"
  29.    
  30.     mvarDocumentId.Close False
  31.     'attente que l'impression des documents soit finis avant de quitter word
  32.     While AppWord.BackgroundPrintingStatus <> 0
  33.     Wend
  34.    
  35.     AppWord.Quit wdDoNotSaveChanges 'je ne sauvegarde pas les documents ? la fin de l'impression
  36.     Set AppWord = Nothing
  37.    
  38. End Sub

Reply

Marsh Posté le 27-06-2006 à 10:19:44   

Reply

Marsh Posté le 27-06-2006 à 10:22:20    

a quelle ligne ton code s'arrete-t-il de tourner ?

Reply

Marsh Posté le 27-06-2006 à 10:25:19    

jpcheck a écrit :

a quelle ligne ton code s'arrete-t-il de tourner ?


 
a la ligne 10
 

Reply

Marsh Posté le 27-06-2006 à 10:33:21    

mais remplace déjà le "chemin du fichier DOC"  et "nom du fichier doc" par un truc du style "c:\mon_dossier" et "mon_fichier_doc.doc" ^^

Reply

Marsh Posté le 27-06-2006 à 10:41:48    

jpcheck a écrit :

mais remplace déjà le "chemin du fichier DOC"  et "nom du fichier doc" par un truc du style "c:\mon_dossier" et "mon_fichier_doc.doc" ^^


 
Oui j'avais oublié mais çà ne marche toujours pas,je creuse mais je ne trouve pas

Reply

Marsh Posté le 27-06-2006 à 10:48:15    

résolvons ca par palier, est-ce déjà ton fichier .doc il est bon, tu passes ta ligne 10 du code ou pas ?

Reply

Marsh Posté le 27-06-2006 à 10:53:01    

jpcheck a écrit :

résolvons ca par palier, est-ce déjà ton fichier .doc il est bon, tu passes ta ligne 10 du code ou pas ?


 
mon fichier.doc est bon, il n'y a pas de pb mais je passe pas la ligne 10

Reply

Marsh Posté le 27-06-2006 à 11:04:11    

Hisoka76 a écrit :

mon fichier.doc est bon, il n'y a pas de pb mais je passe pas la ligne 10


pkoi passes tu par du Cstr("a" )+Cstr("B" ) ?

Reply

Marsh Posté le 27-06-2006 à 11:08:23    

jpcheck a écrit :

pkoi passes tu par du Cstr("a" )+Cstr("B" ) ?


 
le premier Cstr est pour indiquer le repertoire, le deuxième est pour indiquer le document ou je travaille...attend 2 sec, je crois qu'il manque le fichier d'arrivé, je test!

Reply

Marsh Posté le 27-06-2006 à 11:10:57    

Non çà me fait toujours la meme chose, je ne comprend pas normalement c'est ça

Reply

Marsh Posté le 27-06-2006 à 11:10:57   

Reply

Marsh Posté le 27-06-2006 à 11:15:53    

ne passe pas par des Cstr, mets simplement le "c:\dossierblabla\fichierblabla.doc"

Reply

Marsh Posté le 27-06-2006 à 11:24:42    

T'es obligé de mettre ta template si t'en met une une nouvelle(la nouvelle est le nom du repertoire),j'essaye mais cà ne marche pas!
 
j'ai  changé le add en application mais moi, il faut que je fasse des modif aprés dans le publipostage!

Reply

Marsh Posté le 27-06-2006 à 11:27:26    

et au lieu de toutes ces lignes de codes tu passes par du shell ?

Reply

Marsh Posté le 27-06-2006 à 11:30:22    

Eh non, le shell va me l'ouvrir sous une fenêtre "ouvrir sous", non?

Reply

Marsh Posté le 27-06-2006 à 11:36:22    

merci pour tout mais j'ai vu quelque chose, si ca t'intéresse c'est de séparer le fichier par section, je trouve que c'est plus simple!

Reply

Marsh Posté le 27-06-2006 à 11:40:34    

Avec cette méthode cà marche!mais merci quand meme!

Reply

Marsh Posté le 27-06-2006 à 11:44:10    

mets [résolu] dans le titre du topic, ca fait gagner du temps ^^

Reply

Marsh Posté le 27-06-2006 à 11:47:47    

OK merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed