Comment faire pour automatiser Word à partir de Visual Basic pour créer une opération de fusion et publipostage pour les étiquettes de publipostage

Traductions disponibles Traductions disponibles
Numéro d'article: 258512 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Résumé

Cet article explique comment automatiser Microsoft Office Word à partir d'une application Microsoft Visual Basic pour créer et exécuter une opération de fusion et publipostage pour les étiquettes de publipostage.

Plus d'informations

L'exemple de code dans cet article utilise un fichier texte délimité par des tabulations pour la source de données. Le fichier texte comporte les champs suivants :
  • Contact_Name
  • Adresse
  • Ville
  • Code_postal
  • Pays
Vous pouvez utiliser n'importe quel éditeur de texte pour créer la source de données de fichier texte. Par exemple, vous pouvez utiliser le bloc-notes.

Lorsque vous créez la source de données, n'oubliez pas séparer les champs (colonnes) à l'aide d'un caractère de tabulation et pour séparer les enregistrements (lignes) à l'aide d'un retour chariot. Le texte suivant est un exemple de comment le fichier texte peut apparaître :
Contact_Name	Address	          City	     Postal_Code      Country
Maria Anders	Obere Str. 57	 Berlin	     12209	    Germany  
Thomas Hardy	120 Hanover Sq.	 London	     WA1 1DP	    UK
Hanna Moos	Forsterstr. 57	 Mannheim     68306	    Germany
Laurence Lebihan  12, rue des Bouchers Marseille   13008	    France

				
note vous pouvez utiliser n'importe quelle autre source de données au lieu du fichier texte délimité par des tabulations. Par exemple, vous pouvez utiliser un Microsoft Access base de données.

Exemple pas à pas

  1. Démarrez un nouveau projet standard EXE dans Visual Basic. Par défaut, un formulaire appelé Form1 est créé.
  2. Ajoutez un contrôle CommandButton à Form1.
  3. Sélectionnez la bibliothèque d'objets Microsoft Word pour la version de Word que vous souhaitez automatiser et puis cliquez sur OK.
  4. Copiez le code suivant dans la fenêtre de code de Form1.
    Private Sub Command1_Click()
    
        Dim oApp As Word.Application
        Dim oDoc As Word.Document
        
        'Start a new document in Word
        Set oApp = CreateObject("Word.Application")
        Set oDoc = oApp.Documents.Add
        
        With oDoc.MailMerge
            
            'Insert the mail merge fields temporarily so that
            'you can use the range that contains the merge fields as a layout
            'for your labels -- to use this as a layout, you can add it
            'as an AutoText entry.
            With .Fields
                .Add oApp.Selection.Range, "Contact_Name"
                oApp.Selection.TypeParagraph
                .Add oApp.Selection.Range, "Address"
                oApp.Selection.TypeParagraph
                .Add oApp.Selection.Range, "City"
                oApp.Selection.TypeText "  "
                .Add oApp.Selection.Range, "Postal_Code"
                oApp.Selection.TypeText " -- "
                .Add oApp.Selection.Range, "Country"
            End With
            Dim oAutoText As Word.AutoTextEntry
            Set oAutoText = oApp.NormalTemplate.AutoTextEntries.Add("MyLabelLayout", oDoc.Content)
            oDoc.Content.Delete 'Merge fields in document no longer needed now
                                'that the AutoText entry for the label layout
                                'has been added so delete it.
            
            'Set up the mail merge type as mailing labels and use
            'a tab-delimited text file as the data source.
            .MainDocumentType = wdMailingLabels 
            .OpenDataSource Name:="C:\data.txt" 'Specify the data source here
    
            'Create the new document for the labels using the AutoText entry
            'you added -- 5160 is the label number to use for this sample.
            'You can specify the label number you want to use for the output
            'in the Name argument.
            oApp.MailingLabel.CreateNewDocument Name:="5160", Address:="", _
                AutoText:="MyLabelLayout", LaserTray:=wdPrinterManualFeed
    
            'Execute the mail merge to generate the labels.
            .Destination = wdSendToNewDocument
            .Execute
    
            'Delete the AutoText entry you added
            oAutoText.Delete
            
        End With
        
        'Close the original document and make Word visible so that
    
        'the mail merge results are displayed
        oDoc.Close False
        oApp.Visible = True
    
        'Prevent save to Normal template when user exits Word
        oApp.NormalTemplate.Saved = True
        
    End Sub
    					
    L'argument nom de la méthode OpenDataSource dans ce code fait référence à la source de données en tant que c:\data.txt. Si la source de données possède un autre chemin d'accès ou un nom de fichier différent, modifiez cette ligne dans le code en conséquence.
  5. Appuyez sur la touche F5 pour exécuter le programme, puis cliquez sur Command1. Un document étiquette de publipostage est créé à l'aide des données issues de la source de données.

Références

Pour plus d'informations sur l'automatisation de Word ou sur la procédure à suivre créer des documents de fusion et publipostage, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la base de connaissances Microsoft :
258523Comment faire pour déterminer le nombre d'enregistrements fusionnés avant d'exécuter une opération de fusion et publipostage
220607Comment faire pour automatiser Microsoft Word pour effectuer une opération de fusion et publipostage à partir de Visual Basic
244219Comment faire pour automatiser l'opération de fusion et publipostage dans Word 2000 à l'aide de Visual J ++ (Java)
220911Comment faire pour automatiser Microsoft Word pour effectuer une opération de fusion et publipostage à l'aide de Visual C++ et MFC
212034Comment créer des étiquettes de publipostage dans Word à l'aide de la fusion et publipostage
209812Macro de fusion et publipostage ne parvient pas à enregistrer le numéro de libellé

Propriétés

Numéro d'article: 258512 - Dernière mise à jour: lundi 14 mai 2007 - Version: 5.2
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Office Word 2007
  • Microsoft Office Word 2003
  • Microsoft Word 2002 Standard Edition
  • Microsoft Word 2000 Standard Edition
  • Microsoft Word 97 Standard Edition
  • Microsoft Visual Basic 6.0 Édition professionnelle
  • Microsoft Visual Basic 5.0 Édition professionnelle
Mots-clés : 
kbmt kbautomation kbhowto KB258512 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 258512
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com