Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Publipostage

4 réponses
Avatar
AF86
Bonjour à toutes et à tous et merci d'avance pour vos réponses,

Alors, voilà mon pb :

J'ai un tableau excel simple avec plusieurs colonnes qui contiennent des
renseignements sur des clients.
J'ai aussi un document word avec l'option publipostage pour transférer les
données du tableau excel vers le doc word.

Jusqu'ici, tout va bien ! Mais... Et oui il y a un "Mais", lorsque je lance
le publipostage, l'ordi me génère un doc word unique avec les données
concernant le 1er client sur la 1ere page puis le 2e client sur la 2e page
etc... etc...
Normale me direz-vous mais voilà, je souhaiterais plutôt avoir un doc word
comportant 1 page concernant un client à chaque fois et non un seul doc word
avec tous les clients !

J'ai déjà fait quelques recherche sur la question et je suis arrivé avec mes
modestes moyens à faire cette macro incompléte malheureusement. Aussi je vous
demande de l'aide ;-(

Voici ma macro :

Sub Macro1()
' Génèration du publipostage pour l'enregistrement en cours :
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
.LastRecord = ActiveDocument.MailMerge.DataSource.ActiveRecord
End With
.Execute Pause:=False
End With
' Enregistrement du nouveau document sur le disque dur (bureau) :
ChangeFileOpenDirectory _
"C:\Documents and Settings\utilisateur1\Bureau\"
ActiveDocument.SaveAs FileName:="doc 1.docx", FileFormat:= _
wdFormatXMLDocument, LockComments:=False, Password:="",
AddToRecentFiles _
:=True, WritePassword:="", ReadOnlyRecommended:=False,
EmbedTrueTypeFonts _
:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
SaveAsAOCELetter:=False
' Fermeture du nouveau document après l'enregistrement :
ActiveWindow.Close
' Retour au document source pour un autre publipostage :
Windows("Doc principal.docx").Activate
' Passer à l'enregistrement suivant sur le doc source :
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdNextRecord
End Sub

Vous constatez que je suis obligé de repéter manuellement la macro jusqu'au
dernier enregistrement ! Donc comment faire en sorte d'automatiser cette
macro pour qu'elle continue jusqu'au dernier enregistrement sans mon
intervention ?

Et ensuite, comment faire pour que l'ordi génère un nom automatiquement sans
écraser le doc word nouvellement créé (car après avoir fait la macro une
fois, il génère un 1er doc word 'doc 1" mais si on recommence, il écrase
alors le 1er "doc 1" pour refaire un autre "doc 1" avec l'enregistrement
encours donc pas cool) ?
Le must serait qu'il génère pour chaque dossier le nom "Doc 1", puis "doc
2"... Ou encore mieux, qu'il intégrè dans le nom du fichier le champs "Nom"
et "Prénom" du client en question lors du publipostage mais là j'en demande
peut être un peu trop !!! ;-)

Voilà, je vous remercie par avance pour vos réponses.

Bye

4 réponses

Avatar
gmlsteph
Bonjour,

Pas besoin de Macro! Grosso modo:
Dans Word tu crée ton doc avec Fusion et publipostage suis les étapes
depuis le choix de la source Feuille Excel
puis lorsque tu lanceras la fusion tu choisis document au lieu
d'imprimante.
Tu obtiendras les pages correspondant à chaque enregistrement de ta
source .xls

Cordialement.

--
lSteph

On 26 mai, 11:16, AF86 wrote:
Bonjour à toutes et à tous et merci d'avance pour vos réponses,

Alors, voilà mon pb :

J'ai un tableau excel simple avec plusieurs colonnes qui contiennent des
renseignements sur des clients.
J'ai aussi un document word avec l'option publipostage pour transférer les
données du tableau excel vers le doc word.

Jusqu'ici, tout va bien ! Mais... Et oui il y a un "Mais", lorsque je lan ce
le publipostage, l'ordi me génère un doc word unique avec les donné es
concernant le 1er client sur la 1ere page puis le 2e client sur la 2e pag e
etc... etc...
Normale me direz-vous mais voilà, je souhaiterais plutôt avoir un doc word
comportant 1 page concernant un client à chaque fois et non un seul doc word
avec tous les clients !

J'ai déjà fait quelques recherche sur la question et je suis arrivé avec mes
modestes moyens à faire cette macro incompléte malheureusement. Aussi je vous
demande de l'aide ;-(

Voici ma macro :

Sub Macro1()
' Génèration du publipostage pour l'enregistrement en cours :
    With ActiveDocument.MailMerge
        .Destination = wdSendToNewDocument
        .SuppressBlankLines = True
        With .DataSource
            .FirstRecord = ActiveDocument.MailMerge.DataSou rce.ActiveRecord
            .LastRecord = ActiveDocument.MailMerge.DataSour ce.ActiveRecord
        End With
        .Execute Pause:úlse
    End With
' Enregistrement du nouveau document sur le disque dur (bureau) :
    ChangeFileOpenDirectory _
        "C:Documents and Settingsutilisateur1Bureau"
    ActiveDocument.SaveAs FileName:="doc 1.docx", FileFormat:= _
        wdFormatXMLDocument, LockComments:úlse, Password:=" ",
AddToRecentFiles _
        :=True, WritePassword:="", ReadOnlyRecommended:úl se,
EmbedTrueTypeFonts _
        :úlse, SaveNativePictureFormat:úlse, SaveFormsDat a:úlse, _
        SaveAsAOCELetter:úlse
' Fermeture du nouveau document après l'enregistrement :
    ActiveWindow.Close
' Retour au document source pour un autre publipostage :
    Windows("Doc principal.docx").Activate
' Passer à l'enregistrement suivant sur le doc source :
    ActiveDocument.MailMerge.DataSource.ActiveRecord = wdNextRecord
End Sub

Vous constatez que je suis obligé de repéter manuellement la macro ju squ'au
dernier enregistrement ! Donc comment faire en sorte d'automatiser cette
macro pour qu'elle continue jusqu'au dernier enregistrement sans mon
intervention ?

Et ensuite, comment faire pour que l'ordi génère un nom automatiqueme nt sans
écraser le doc word nouvellement créé (car après avoir fait la ma cro une
fois, il génère un 1er doc word 'doc 1" mais si on recommence, il é crase
alors le 1er "doc 1" pour refaire un autre "doc 1" avec l'enregistrement
encours donc pas cool) ?
Le must serait qu'il génère pour chaque dossier le nom "Doc 1", puis "doc
2"... Ou encore mieux, qu'il intégrè dans le nom du fichier le champs "Nom"
et "Prénom" du client en question lors du publipostage mais là j'en d emande
peut être un peu trop !!! ;-)

Voilà, je vous remercie par avance pour vos réponses.

Bye


Avatar
AF86
Tout à fait Steph, je suis d'accord avec toi pour générer 1 et SEULEMENT 1
seul doc word avec TOUS les enregistrements, ça marche mais ma question est :
Comment faire pour au contraire, générer 1 doc word pour CHAQUE
enregistrement (ex : si j'ai 16 enregistrements dans mon tableau, alors
j'aurais 16 fichiers doc au bout du compte) ?

Merci pour ta participation Steph, j'espère que tu as une idée plus précise
maintenant de mon pb. Je cherche toujours et j'avoue que je séche un peu...

"" a écrit :

Bonjour,

Pas besoin de Macro! Grosso modo:
Dans Word tu crée ton doc avec Fusion et publipostage suis les étapes
depuis le choix de la source Feuille Excel
puis lorsque tu lanceras la fusion tu choisis document au lieu
d'imprimante.
Tu obtiendras les pages correspondant à chaque enregistrement de ta
source .xls

Cordialement.

--
lSteph


Avatar
Daniel.C
Bonjour.
Tu aurais plus de chances d'avoir une réponse en posant ta question qur
le forum Word.
Daniel

Tout à fait Steph, je suis d'accord avec toi pour générer 1 et SEULEMENT 1
seul doc word avec TOUS les enregistrements, ça marche mais ma question est :
Comment faire pour au contraire, générer 1 doc word pour CHAQUE
enregistrement (ex : si j'ai 16 enregistrements dans mon tableau, alors
j'aurais 16 fichiers doc au bout du compte) ?

Merci pour ta participation Steph, j'espère que tu as une idée plus précise
maintenant de mon pb. Je cherche toujours et j'avoue que je séche un peu...

"" a écrit :

Bonjour,

Pas besoin de Macro! Grosso modo:
Dans Word tu crée ton doc avec Fusion et publipostage suis les étapes
depuis le choix de la source Feuille Excel
puis lorsque tu lanceras la fusion tu choisis document au lieu
d'imprimante.
Tu obtiendras les pages correspondant à chaque enregistrement de ta
source .xls

Cordialement.

--
lSteph




Avatar
AF86
Bonne remarque je pensais qu'en partant du fichier excel avec une macro je
trouverais une réponse mais oui c'est plus logique donc je vais créer la même
question sur le forum Word et fermer ce post par la même occasion.

Donc si vous avez d'autres solutions, merci de les mettre sur le même post
sous Word.

Bye

"Daniel.C" a écrit :

Bonjour.
Tu aurais plus de chances d'avoir une réponse en posant ta question qur
le forum Word.
Daniel

> Tout à fait Steph, je suis d'accord avec toi pour générer 1 et SEULEMENT 1
> seul doc word avec TOUS les enregistrements, ça marche mais ma question est :
> Comment faire pour au contraire, générer 1 doc word pour CHAQUE
> enregistrement (ex : si j'ai 16 enregistrements dans mon tableau, alors
> j'aurais 16 fichiers doc au bout du compte) ?
>
> Merci pour ta participation Steph, j'espère que tu as une idée plus précise
> maintenant de mon pb. Je cherche toujours et j'avoue que je séche un peu...
>
> "" a écrit :
>
>> Bonjour,
>>
>> Pas besoin de Macro! Grosso modo:
>> Dans Word tu crée ton doc avec Fusion et publipostage suis les étapes
>> depuis le choix de la source Feuille Excel
>> puis lorsque tu lanceras la fusion tu choisis document au lieu
>> d'imprimante.
>> Tu obtiendras les pages correspondant à chaque enregistrement de ta
>> source .xls
>>
>> Cordialement.
>>
>> --
>> lSteph