macro publipostage

Le
gup
Bonjour,

Dans un fichier excel, j'ai plusieurs zone nommées. Ces zones servent de
source pour des publipostage de document word. Les documents word
possèdent déjà les champs de fusion, ainsi que la source de données.
Dans le fichier Excel, je souhaite en cliquant sur un bouton, lancer
automatiquement la fusion du document word vers l'imprimante.
Lorsque j'ouvre manuellement le document word, et que je lance la
fusion, tout marche.

Lorsque je clique sur mon bouton depuis le fichier excel, word s'ouvre,
mais la fusion du document ne se fait pas, tout est très long, et fini
par bloquer.

Je suis sous Office 2000.

Quelqu'un pourrait m'expliquer comment faire ceci s'il vous plait ?

Cordialement
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
michdenis
Le #21186511
Bonjour,

Évidemment, ce code n'a pas été testé.
J'ai aussi supposé que ton document contenant
la macro de publipostage n'était pas déjà ouvert.

'------------------------------------
Sub Test()
Dim Wd as object
dim Dc as object
dim MaMacro as String
Dim MonDocument as string

'le fichier contenant la macro Word
MonDocument = "c:Chemin & NomDuFichier.doc

Set Wd = createobject("Word.Application")
Wd.visible = true

set Dc = Wd.Documents.Open("Chemin & NomDuFichier.doc)

'En supposant que ta macro est dans un MODULE STANDARD de
'ton document Word, tu lances la macro "NomDeLaMacro" que tu
'dois remplacer par son vrai nom.

MaMacro = "'" & ThisDocument.Name & "'!NomDeLaMacro"
Application.Run MaMacro

Dc.Close false
Wd.Quit
Set Dc = Nothing:Set Wd=Nothing
End Sub
'------------------------------------




"gup" e$
Bonjour,

Dans un fichier excel, j'ai plusieurs zone nommées. Ces zones servent de
source pour des publipostage de document word. Les documents word
possèdent déjà les champs de fusion, ainsi que la source de données.
Dans le fichier Excel, je souhaite en cliquant sur un bouton, lancer
automatiquement la fusion du document word vers l'imprimante.
Lorsque j'ouvre manuellement le document word, et que je lance la
fusion, tout marche.

Lorsque je clique sur mon bouton depuis le fichier excel, word s'ouvre,
mais la fusion du document ne se fait pas, tout est très long, et fini
par bloquer.

Je suis sous Office 2000.

Quelqu'un pourrait m'expliquer comment faire ceci s'il vous plait ?

Cordialement
gup
Le #21186671
Word s'ouvre, mais le fichier word est très long à s'ouvrir.

set Dc = Wd.Documents.Open("Chemin & NomDuFichier.doc)




Comment peut-on corriger cela s'il vous plait ?

Cordialement
gup
Le #21186791
Le publipostage ne se lance pas.

Cordialement
michdenis
Le #21186881
| set Dc = Wd.Documents.Open("Chemin & NomDuFichier.doc)
| Comment peut-on corriger cela s'il vous plait ?

Dans la lprocédure, il y a une variable :

'le fichier contenant la macro Word
'à toi de définir le chemin et le nom du fichier
MonDocument = "c:Chemin & NomDuFichier.doc

Et dans la procédure, tu utilises la variable :

set Dc = Wd.Documents.Open(MonDocument)
michdenis
Le #21186871
| Le publipostage ne se lance pas.

Avec ce type de commentaire, Tu voudrais que je devine
ce qui se passe lorsque tu lances la macro ?
gup
Le #21188921
Voici le code que j'ai testé :


Sub Test()
Dim Wd As Object
Dim Dc As Object
Dim MaMacro As String
Dim MonDocument As String

MonDocument = "G:Convocation.doc"

Set Wd = CreateObject("Word.Application")
Wd.Visible = True

Set Dc = Wd.Documents.Open(MonDocument)


MaMacro = "'" & MonDocument & "'!publi"
Application.Run MaMacro

Dc.Close False
Wd.Quit
Set Dc = Nothing: Set Wd = Nothing


End Sub
michdenis
Le #21190211
Et la macro bloque où ?

Exécute là pas à pas en utilisant la touche F8.
Note la ligne de code qui cause problème.

J'ai modifié légèrement le code de la macro.
'----------------------------------
Sub Test()
Dim Wd As Object
Dim Dc As Object
Dim MaMacro As String
Dim Chemin As String
Dim Fichier As String

Chemin = "G:"
Fichier = "Convocation.doc"

Set Wd = CreateObject("Word.Application")
Wd.Visible = True

If Dir(chemin & fichier) <>"" then
Set Dc = Wd.Documents.Open(Chemin & Fichier)
else
Msgbox "Fichier introuvable"
exit sub
End if

MaMacro = "'" & Fichier & "'!publi"
Application.Run MaMacro

Dc.Close False
Wd.Quit
Set Dc = Nothing: Set Wd = Nothing
End Sub
'----------------------------------
gup
Le #21190441
> Set Dc = Wd.Documents.Open(Chemin & Fichier)



L'ouverture du fichier word est très longue, de l'ordre d'une minute. Il
ouvre avec la source de données.


Ce code génére une erreur : fichier introuvable.

MaMacro = "'" & Fichier & "'!publi"
Application.Run MaMacro



Je l'ai modifié par

> MaMacro = "'" & chemin & Fichier & "'!publi"
> Application.Run MaMacro


Là, plus d'erreur fichier introuvable, mais une erreur format de fichier
non valide.

Je précise que la macro word, lancé depuis word manuellement fonctionne
sans problème.

Merci
Daniel.C
Le #21190551
Bonjour.

Peut-être :

Wd.Run MaMacro

Daniel

> Set Dc = Wd.Documents.Open(Chemin & Fichier)

L'ouverture du fichier word est très longue, de l'ordre d'une minute. Il
ouvre avec la source de données.


Ce code génére une erreur : fichier introuvable.

MaMacro = "'" & Fichier & "'!publi"
Application.Run MaMacro



Je l'ai modifié par

> MaMacro = "'" & chemin & Fichier & "'!publi"
> Application.Run MaMacro


Là, plus d'erreur fichier introuvable, mais une erreur format de fichier non
valide.

Je précise que la macro word, lancé depuis word manuellement fonctionne sans
problème.

Merci


gup
Le #21190851
>
Wd.Run MaMacro




C'est effectivement ca. Merci beaucoup. J'y suis presque : depuis mon
fichier excel, lorsque je clic sur le bouton, voici ce qui est fait :

- Ouverture du classeur source du publipostage
- Remplissage des informations
- Fermeture du classeur de publipostage
- Ouverture de Word
- Ouverture du document à fusionner
- Lancement de la macro word :
* Lancer la fusion vers l'imprimante
- Fermeture du document fusionné sans enregistrer
- Fermeture du document source sans enregistrer
- Fermeture de Word

Si le fichier word est long à s'ouvrir (environ 1 minute), c'est parce
que je l'ouvre dans ma macro avant, et qu'il ne doit pas être fini de
fermer (vérifié en commentant la partie avant l'ouverture de word).
Comment puis-je attendre la fermeture complète du classeur source de
publipostage et démarrer seulement après l'ouverture du document word
s'il vous plait ?

Le lancement de la fusion vers l'imprimante est très long (de l'ordre
d'une minute). De quoi cela pourrait-il venir s'il vous plait ?


Je vous remercie pour votre aide.

Cordialement
Publicité
Poster une réponse
Anonyme