Problème publipostage automatisé Word VBA

Problème publipostage automatisé Word VBA - VB/VBA/VBS - Programmation

Marsh Posté le 04-10-2006 à 15:34:35    

Bonjour, j'ai un petit problème avec une automatisation pour faire un publipostage automatisé sous Word.
 
J'ai 2 types de fichiers :
_1 fichier : création courrier.doc (qui contient la userform avec les champs a remplir et tout le code VBA)
_1 fichier : CSCNONV.doc (qui est un fichier qui contient des champs de publipostage sous la forme classique "NOM", "Prénom",... qui ont été créés à base d'un document Excel à la base, puis le document Word à été réattribué en Lettre classique non publipostée (d'ou la fonction MainDocumentType = wdFormLetters dans le code ci dessous)
 
J'ai créé une UserForm sous VBA Word qui contient plusieurs champs (NOM, Prénom, Adresse, etc...)
 
En bas de cette UserForm, j'ai inseré une bouton "Creer courrier"
 
Et la, le bas blaisse.. En effet, lorsque je veux publiposter, mon code ouvre donc le document qui contient les champs de publipostage, sans problème ca, mais le truc c'est que j'aimerai que ca soit ma UserForm, et donc ses propres champs (NOM, Prénom, etc...) qui puissent completer le publipostage du fichier ouvert.
 
Le problème est que je n'arrive pas à trouver le code qui permettrai de récuperer chaque champ de la UserForm pour les utiliser dans le publipostage de l'autre fichier à publiposter
 
Je vous pose la partie de code de mon bouton "Creer courrier"
 

Citation :


Private Sub bouton_creer_Click()
    Dim AppWord As Word.Application
    Dim docWord As Word.Document
   
    Set AppWord = New Word.Application
    AppWord.Visible = True
         
    'Présélection du courrier type à utiliser
    If Reponse.ListIndex = 0 Then
    Set docWord = AppWord.Documents.Open("""G:\RECRUTEMENT\publipostage\CSCNONV.doc""" )
    ElseIf Reponse.ListIndex = 1 Then
    Set docWord = AppWord.Documents.Open("""G:\RECRUTEMENT\publipostage\CSCNON.doc""" )    
    ElseIf Reponse.ListIndex = 2 Then
    Set docWord = AppWord.Documents.Open("""G:\RECRUTEMENT\publipostage\CSCNONH.doc""" )            
    End If
     
   'Définition du type de publipostage
    AppWord.ActiveDocument.MailMerge.MainDocumentType = wdFormLetters
     
   'Partie manquante pour utiliser les champs pour publiposter
   AppWord.ActiveDocument.MailMerge. ???????
 
   'Execution du publipostage
    AppWord.ActiveDocument.MailMerge.Execute
     
End Sub


 
J'ai essayé plusieurs type de syntaxe mais je n'arrive pas à trouver comment donner à word les champs à utiliser
Il y a bien une syntaxe du genre "    AppWord.ActiveDocument.MailMerge.Fields.Item" mais ca ne fonctionne pas... :(
 
J'aurais grandement besoin d'aide pour me debloquer sur ce petit problème qui ma foi est assez ennuyeux, ou si quelqu'un à une autre idée pour faire ce principe de publipostage avec plusieurs courrier type, en utilisant les champs rempli dans le document original.
 
J'ai voulu essayer autrement, en passant par un fichier doc ou serait contenu les valeurs des champs, mais là, je n'arrive pas non plus à creer ce fichier correctement.. donc je ne sais plus quoi faire...
 
Merci par avance de votre aide :)
 
Xeno

Reply

Marsh Posté le 04-10-2006 à 15:34:35   

Reply

Marsh Posté le 04-10-2006 à 17:09:19    

Je te conseille de regarder l'aide en ligne Word aux mots-clé suivants : MailMergeFields, AddAsk, AddFillIn
 
La méthode .Add appliquée à l'objet MailMergeFields semble répondre à ton attente, mais je n'en sais pas plus.
ActiveDocument.MailMerge.Fields.Add Range:=Selection.Range,     Name:="MiddleInitial"


Message édité par tegu le 04-10-2006 à 17:09:34
Reply

Sujets relatifs:

Leave a Replay

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