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

publipostage et enregistrment des lettres

21 réponses
Avatar
sleg
BOnjour,

voila j'ai un document Word pour faire du publipostage avec un fichier
excel pour les donn=E9es.

je clic sur "fusionner vers un autre document" ensuite je lance une
macro qui me decoupe ce dernier fichier et les enregistre sur mon c: ,
mais je ne sais pas comment passer le nom de chaque fichier qui est
contenu dans mon document excel en colonne T.

est ce possible ?

mon fichier word & excel se trouve dans la meme repertoire.
dans la colonne T il y aune formule
=3DCONCATENER("nom_FRI_";TEXTE(U2;"aaammjj");"_";V2;"_";J2;"_";H2)

Merci de votre aide.

10 réponses

1 2 3
Avatar
Anacoluthe
Bonjour !

'sleg' nous a écrit ...
voila j'ai un document Word pour faire du publipostage avec un fichier
excel pour les données.
je clic sur "fusionner vers un autre document" ensuite je lance une
macro qui me decoupe ce dernier fichier et les enregistre sur mon c: ,
mais je ne sais pas comment passer le nom de chaque fichier qui est
contenu dans mon document excel en colonne T.
est ce possible ?
mon fichier word & excel se trouve dans la meme repertoire.
dans la colonne T il y aune formule
=CONCATENER("nom_FRI_";TEXTE(U2;"aaammjj");"_";V2;"_";J2;"_";H2)



Utilisez votre colonne T comme un champ de fusion NomDuFichier
Placez ce champ dans votre fusion {MERGEFIELD NomDuFichier} en
tout début de document (le mieux c'est un premier paragraphe).
Dans votre macro pour chaque section : extraire (et effacer) le
premier mot (ou paragraphe) et l'utiliser comme nom du fichier
à enregistrer. Et voilà.

Anacoluthe
« Nommer, c'est aussi sauver. »
- Claudio MAGRIS
Avatar
sleg
Merci, mais j'avois une autre question serait il possible d'utiliser
les signets pour determiner le nom du fichier a sauvegarder ? et si
oui comment ecrirer la ligne le oermlettant ?

Merci de votre aide


Anacoluthe a écrit :
Bonjour !

'sleg' nous a �crit ...
> voila j'ai un document Word pour faire du publipostage avec un fichier
> excel pour les donn�es.
> je clic sur "fusionner vers un autre document" ensuite je lance une
> macro qui me decoupe ce dernier fichier et les enregistre sur mon c: ,
> mais je ne sais pas comment passer le nom de chaque fichier qui est
> contenu dans mon document excel en colonne T.
> est ce possible ?
> mon fichier word & excel se trouve dans la meme repertoire.
> dans la colonne T il y aune formule
> =CONCATENER("nom_FRI_";TEXTE(U2;"aaammjj");"_";V2;"_";J2;"_";H2)

Utilisez votre colonne T comme un champ de fusion NomDuFichier
Placez ce champ dans votre fusion {MERGEFIELD NomDuFichier} en
tout d�but de document (le mieux c'est un premier paragraphe).
Dans votre macro pour chaque section : extraire (et effacer) le
premier mot (ou paragraphe) et l'utiliser comme nom du fichier
� enregistrer. Et voil�.

Anacoluthe
� Nommer, c'est aussi sauver. �
- Claudio MAGRIS


Avatar
Anacoluthe
Bonjour !

'sleg' nous a écrit ...
Merci, mais j'avois une autre question serait il possible d'utiliser
les signets pour determiner le nom du fichier a sauvegarder ? et si
oui comment ecrirer la ligne le oermlettant ?



Pourquoi donc avec un signet ???

Possible certainement mais complexe : n'oubliez pas que dans un document
il ne peut y avoir qu' UN SEUL signet de même nom et qu'aucun signet
ne passe la fusion...

Et je vous dis pas pour le oermletter bien comme il faut... :-p

Anacoluthe
« Pourquoi faire simple quand on peut faire compliqué ? »
- Jacques ROUXEL
Avatar
sleg
lol j'ai doigts en bois ce soir,

sinon je ne connais pas trop le code vb donc si vous pouviez m'aider.

merci d'avance et bonne soirée.


On 17 oct, 19:45, Anacoluthe wrote:
Bonjour !

   'sleg' nous a écrit ...

> Merci, mais j'avois une autre question serait il possible d'utiliser
> les signets pour determiner le nom du fichier a sauvegarder ? et si
> oui comment ecrirer la ligne le oermlettant ?

Pourquoi donc avec un signet ???

Possible certainement mais complexe : n'oubliez pas que dans un document
il ne peut y avoir qu' UN SEUL signet de même nom et qu'aucun signet
ne passe la fusion...

Et je vous dis pas pour le oermletter bien comme il faut...  :-p

Anacoluthe
« Pourquoi faire simple quand on peut faire compliqué ? »
   - Jacques ROUXEL


Avatar
sleg
un truc comme ça c possible ??


ActiveDocument.SaveAs FileName:="Nom_FRI_" & Format(Date, "yyyymmdd")
& "_" & ActiveDocument.Bookmarks("nfiche") & docnum & ".doc"



On 17 oct, 19:45, Anacoluthe wrote:
Bonjour !

   'sleg' nous a écrit ...

> Merci, mais j'avois une autre question serait il possible d'utiliser
> les signets pour determiner le nom du fichier a sauvegarder ? et si
> oui comment ecrirer la ligne le oermlettant ?

Pourquoi donc avec un signet ???

Possible certainement mais complexe : n'oubliez pas que dans un document
il ne peut y avoir qu' UN SEUL signet de même nom et qu'aucun signet
ne passe la fusion...

Et je vous dis pas pour le oermletter bien comme il faut...  :-p

Anacoluthe
« Pourquoi faire simple quand on peut faire compliqué ? »
   - Jacques ROUXEL


Avatar
Anacoluthe
Bonjour !

'sleg' nous a écrit ...
un truc comme ça c possible ??
ActiveDocument.SaveAs FileName:="Nom_FRI_" & Format(Date, "yyyymmdd")
& "_" & ActiveDocument.Bookmarks("nfiche") & docnum & ".doc"



Non. Ce code est correct mais il ne peut marcher dans la macro
que vous citiez dans votre 2ème message : pas de signet nfiche

Anacoluthe
« Pourquoi faire simple quand on peut faire compliqué ? »
- Jacques ROUXEL
Avatar
sleg
On 17 oct, 20:56, Anacoluthe wrote:et
si on prend votre solution on le code comment ??

merci d'avance.



Bonjour !

   'sleg' nous a écrit ...

> un truc comme ça c possible ??
> ActiveDocument.SaveAs FileName:="Nom_FRI_" & Format(Date, "yyyymmdd")
> & "_" & ActiveDocument.Bookmarks("nfiche") & docnum & ".doc"

Non. Ce code est correct mais il ne peut marcher dans la macro
que vous citiez dans votre 2ème message : pas de signet nfiche

Anacoluthe
« Pourquoi faire simple quand on peut faire compliqué ? »
   - Jacques ROUXEL


Avatar
Anacoluthe
Bonjour !

'sleg' nous a écrit ...
si on prend votre solution on le code comment ??



On fusionne le nom du fichier dans le 1er paragraphe de chaque
enregistrement :
C:MonRépertoire{MERGEFIELD Nom}-{Mergefield Numéro}.doc
La macro de découpe de la fusion récupère ce nom dans chaque
document copié à partir des sections successives :
NomFichier = Activedocument.Paragraphs(1).Range.Text
puis supprime ce paragraphe
Activedocument.Paragraphs(1).Range.Delete
avant d'enregistrer
ActiveDocument.SaveAs FileName:= NomFichier

Anacoluthe
« Pourquoi faire simple quand on peut faire compliqué ? »
- Jacques ROUXEL
Avatar
sleg
BOnjour,

Merci de ton aide mais j'ai encore 2 problemes : ;-)
Dans mon document j'ai mis en haut de page :
«nom_fichier»_«DATE001»_«N_fiche»_«Metier»_«Code_Applicat ion».doc

Probleme 1 :
lorsque je lance la macro j'obtient une erreur :
erreur d'execution 5487
impossible de terminer l'enregistrement : erruer d'autoriasation
d'acces au fichier
(c:NON_NOM2_NOM3_NOM4_.DOC)

Second probleme :

lorsque je lance la fucion de document il me genere bien le fichier
complet avec les entetes et pied de page mais plus apres avoir lancer
la macro ?? une idée ?

Merfci encorre de votre iade.



voici le code de la macro :
Sub BreakOnPagetest()
' Used to set criteria for moving through the document by page.
Application.Browser.Target = wdBrowsePage

For i = 1 To ActiveDocument.BuiltInDocumentProperties("Number of
Pages")

'Select and copy the text to the clipboard
ActiveDocument.Bookmarks("page").Range.Copy

' Open new document to paste the content of the clipboard into.
Documents.Add
Selection.Paste
' Removes the break that is copied at the end of the page, if any.
Selection.TypeBackspace
ChangeFileOpenDirectory "C:"
' definir le nom du fichier de sauveagrde pour chaque enregistrement
NomFichier = ActiveDocument.Paragraphs(1).Range.Text
ActiveDocument.Paragraphs(1).Range.Delete
ActiveDocument.SaveAs FileName:=NomFichier

' Move the selection to the next page in the document
Application.Browser.Next
Next i
ActiveDocument.Close savechanges:=wdDoNotSaveChanges

End Sub

On 19 oct, 23:14, Anacoluthe wrote:
Bonjour !

   'sleg' nous a écrit ...

> si on prend votre solution on le code comment ??

On fusionne le nom du fichier dans le 1er paragraphe de chaque
enregistrement :
C:MonRépertoire{MERGEFIELD Nom}-{Mergefield Numéro}.doc
La macro de découpe de la fusion récupère ce nom dans chaque
document copié à partir des sections successives :
NomFichier = Activedocument.Paragraphs(1).Range.Text
puis supprime ce paragraphe
Activedocument.Paragraphs(1).Range.Delete
avant d'enregistrer
ActiveDocument.SaveAs FileName:= NomFichier

Anacoluthe
« Pourquoi faire simple quand on peut faire compliqué ? »
   - Jacques ROUXEL


Avatar
sleg
Bonjour Anacoluthe,

plus de souci au nivau de mon second probleme mais j'ai toujours
l'autre ?

une idee please ?

bonne journée.


On 20 oct, 10:13, sleg wrote:
BOnjour,

Merci de ton aide mais j'ai encore 2 problemes : ;-)
Dans mon document j'ai mis en haut de page :
«nom_fichier»_«DATE001»_«N_fiche»_«Metier»_«Code_Applic ation».doc

Probleme 1 :
lorsque je lance la macro j'obtient une erreur :
erreur d'execution 5487
impossible de terminer l'enregistrement : erruer d'autoriasation
d'acces au fichier
(c:NON_NOM2_NOM3_NOM4_.DOC)

Second probleme :

lorsque je lance la fucion de document il me genere bien le fichier
complet avec les entetes et pied de page mais plus apres avoir lancer
la macro ?? une idée ?

Merfci encorre de votre iade.

voici le code de la macro :
Sub BreakOnPagetest()
   ' Used to set criteria for moving through the document by page.
   Application.Browser.Target = wdBrowsePage

   For i = 1 To ActiveDocument.BuiltInDocumentProperties("Number of
Pages")

      'Select and copy the text to the clipboard
      ActiveDocument.Bookmarks("page").Range.Copy

      ' Open new document to paste the content of the clipboard int o.
      Documents.Add
      Selection.Paste
' Removes the break that is copied at the end of the page, if any.
      Selection.TypeBackspace
      ChangeFileOpenDirectory "C:"
' definir le nom du fichier de sauveagrde pour chaque enregistrement
    NomFichier = ActiveDocument.Paragraphs(1).Range.Text
    ActiveDocument.Paragraphs(1).Range.Delete
    ActiveDocument.SaveAs FileName:=NomFichier

      ' Move the selection to the next page  in the document
      Application.Browser.Next
   Next i
   ActiveDocument.Close savechanges:=wdDoNotSaveChanges

End Sub

On 19 oct, 23:14, Anacoluthe wrote:



> Bonjour !

>    'sleg' nous a écrit ...

> > si on prend votre solution on le code comment ??

> On fusionne le nom du fichier dans le 1er paragraphe de chaque
> enregistrement :
> C:MonRépertoire{MERGEFIELD Nom}-{Mergefield Numéro}.doc
> La macro de découpe de la fusion récupère ce nom dans chaque
> document copié à partir des sections successives :
> NomFichier = Activedocument.Paragraphs(1).Range.Text
> puis supprime ce paragraphe
> Activedocument.Paragraphs(1).Range.Delete
> avant d'enregistrer
> ActiveDocument.SaveAs FileName:= NomFichier

> Anacoluthe
> « Pourquoi faire simple quand on peut faire compliqué ? »
>    - Jacques ROUXEL- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


1 2 3