publipostage et enregistrment des lettres

Le
sleg
BOnjour,

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)

Merci de votre aide.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Anacoluthe
Le #17560041
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
sleg
Le #17560451
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


Anacoluthe
Le #17560931
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
sleg
Le #17561051
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
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


sleg
Le #17561231
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
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


Anacoluthe
Le #17561591
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
sleg
Le #17563191
On 17 oct, 20:56, Anacoluthe 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


Anacoluthe
Le #17583211
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
sleg
Le #17584901
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
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


sleg
Le #17596971
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
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


> 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 -


Publicité
Poster une réponse
Anonyme