Multi publipostage

Bonjour à tous

Je connais et comment créer un publipostage différence entre le fichier Excel fonctionne.

Un Fichiers lié à une lettre publipostage (Jusque-là tout va bien)

Élève une lettre de bienvenue pour les élèves en France

Mais est-il possible d’avoir une lettre publipostage en fonction du nom de l’onglet :

Exemple : 6 listes d élèves repartaient dans 6 onglets ( France espagne Italie etc) et du coup 6 courrier en fonction des pays : français anglais espagnol etc

Le but pour moi et de ne pas avoir 6 fichier Excel et 6 fichiers word

est t il possible d’envoyer un courrier par en fonction du nom de l’onglet… comme c’est pas dans le même onglet ?

Merci beaucoup par avance

Bonjour,

Une solution est possible en VBA Word, êtes vous familiarisé avec ce langage ?

Bonjour

En effet c est que j imagine mais malheureusement je ne sais pas faire

Je suis prêt a apprendre avec vous mais la je ne sais même pas quel recherche a faire ici qui pourrait être transposé

Le .zip contient un exemple.

  • La boite de dialogue s'ouvre avec le bouton rouge dans la barre d'accès rapide.
  • Le fichier Excel contient les onglets correspondant aux pays.
capture

Dans un module standard

Option Explicit

Public Adresse As String, Pays As String
Public Continuer As Boolean

Sub LancerLePublipostage()

   Continuer = False
   Application.ChangeFileOpenDirectory ActiveDocument.Path

   With UserForm1
        .ComboBoxPays.List = Array("Angleterre", "Espagne", "France", "Italie")
        .Show
   End With

   If Continuer = False Then Exit Sub

   If Adresse <> "" Then DocSource2 Adresse, Pays

End Sub

Function AdresseFichierExcel() As String

Dim dlgOpen As FileDialog

    AdresseFichierExcel = ""
    Set dlgOpen = Application.FileDialog(fileDialogType:=msoFileDialogOpen)
    With dlgOpen
         .AllowMultiSelect = False
         If .Show = 0 Then

         Else
            AdresseFichierExcel = dlgOpen.SelectedItems(1)
         End If
    End With
    Set dlgOpen = Nothing

End Function

Sub DocSource2(ByVal Adresse2 As String, ByVal PaysChoisi As String)

Dim MonDocument As Document

    Set MonDocument = ActiveDocument

    With MonDocument
         .MailMerge.MainDocumentType = wdFormLetters
         .MailMerge.OpenDataSource Name:=Adresse2, ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
                    AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
                    WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, Format:=wdOpenFormatAuto, Connection:= _
                    "Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=" & Adresse2 & ";Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System data" _
                    , SQLStatement:="SELECT * FROM `" & PaysChoisi & "$`", SQLStatement1:="", SubType:=wdMergeSubTypeAccess
    End With

    Set MonDocument = Nothing

 End Sub

Dans le Userform :

Option Explicit

Private Sub BoutonFichier_Click()

    Adresse = AdresseFichierExcel
    If Adresse <> "" Then Me.TextBoxFichier = Adresse

End Sub

Private Sub BoutonValider_Click()

    If Adresse <> "" And Me.ComboBoxPays.ListIndex > -1 Then
        Continuer = True
        Adresse = Me.TextBoxFichier
        Pays = Me.ComboBoxPays.Value
        Unload Me
     Else
       MsgBox "Vous devez remplir tous les champs !", vbCritical
    End If

End Sub

Bonjour

alors tout d’abord merci énormément pour ce fichier je suis certain que vous avez trouver ce qu’il me fallait

J’ai pu voir la macro fonctionnait parfaitement

Est-il toujours nécessaire de faire choisir un Fichiers alors que c’est toujours le même?

J’ai changé les titres des onglets , Je ne m’attendais pas à ce que ce soit aussi rapide. Il faut dire pour des raisons de confidentialité ne pas voir dit les bons noms.

Mais c’est exactement cela le système

J’ai réussi a changé la liste Des champs dans le publipostage word . le fichier a de nouveaux titres identique dans chaque onglets.

Mon soucis à présent est lorsque je clique sur le bouton rouge carré Cela me propose de chosir un fichier. Je sélectionner le fichier. Dans le useform pays cela affiche les pays précédent et non les nouveau titres.

Il affiche:

Angleterre Espagne France Italie

désormais ce sont des nombres : 009, 860, 800, 420 et 920

Soit 5 onglets

Le reste reste inchangé à l intérieur de chaque

Ou puis change cela ?

Merci énormément

Deux modifications sont à faire dans le code : (Alt-F11 pour atteindre l'éditeur VBA).

Dans la procédure LancerLePublipostage :

  • Indiquez le chemin complet de votre fichier pour alimenter TextBoxFichier. Cela vous évitera d'aller le chercher à chaque utilisation.
  • Listez vos onglets dans ComboBoxpays.List
Sub LancerLePublipostage()

   Continuer = False
   Application.ChangeFileOpenDirectory ActiveDocument.Path

   With UserForm1
        .TextBoxFichier = "D:\Documents\VBA Word\Publipostage\2018-01-16 Publipostage\Classeur4.xlsm"
        .ComboBoxPays.List = Array("009", "420", "800", "860", "920")
        .Show
   End With

   If Continuer = False Then Exit Sub

   If Adresse <> "" Then DocSource2 Adresse, Pays

End Sub
capture

Dans le module du Userform :

capture
  • Modifiez la procédure BoutonValider et ajoutez la première ligne :
Private Sub BoutonValider_Click()

    Adresse = Me.TextBoxFichier
    If Adresse <> "" And Me.ComboBoxPays.ListIndex > -1 Then
        Continuer = True
        Adresse = Me.TextBoxFichier
        Pays = Me.ComboBoxPays.Value
        Unload Me
     Else
       MsgBox "Vous devez remplir tous les champs !", vbCritical
    End If

End Sub
image

J’ai fait les modification nécessaires pour les noms des onglets et dans le module usérforme

Mais j’ai toujours le même résultat la liste n’est pas à jour et la macro ne fonctionne pas

Je vais réessayé tout de même pour comprendre

image

Je suis allé dans le document Word

J’ai ajouté le menu macro et j’ai modifié le nom des Onglets Cela fonctionne

Maintenant j’ai un message d’erreur en jaune dans la macro doc source2

Tout le pavé est en jaune

cela m’a demandé une table

J’ai l’impression de tourné dans cesse sur le choix du fichier source en revanche. J’ai bien stipulé le chemin pourtant

Envoyez moi vos fichiers en privé. Si ce n'est pas possible, je vous transmets mon adresse mail.

Rechercher des sujets similaires à "multi publipostage"