pourriez vous m'aider avec une macro que je ne sais pas faire ? oui ?!
merci ;-)
Voila, j'ai une liste de données sous Excel, je fais des choix dans
celle ci afin de limiter les données à imprimer. Je voudrais ensuite
choisir dans une liste déroulante un nom de document word (ce doc est un
doc "type" dans lequel il existe une fusion avec la liste de données),
ouvrir ce doc dans word, fusionner vers un nouveau doc et fermer le doc
type.
C'est bien de l'automation, non ?
Améliorations futures : pouvoir faire ça avec une liste de fichier et
pouvoir enregistrer automatiquement avec un nom prédéfinis dans un
dossier dont le nom serait dans une cellule d'Excel.
Merci beaucoup aux macroteurs (une fois n'est pas coutume ;-D)
--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Kyrill
Salut JièL
peut etre une bonne base avec les notes suivantes http://support.microsoft.com/kb/285332/en-us http://support.microsoft.com/kb/289830/ http://support.microsoft.com/kb/220607/
-- Bonne journée,
Kyrill
"JièL Goubert" wrote in message news:
Salutatous
crosspost sur MPFE et MPFW.
pourriez vous m'aider avec une macro que je ne sais pas faire ? oui ?! merci ;-)
Voila, j'ai une liste de données sous Excel, je fais des choix dans celle ci afin de limiter les données à imprimer. Je voudrais ensuite choisir dans une liste déroulante un nom de document word (ce doc est un doc "type" dans lequel il existe une fusion avec la liste de données), ouvrir ce doc dans word, fusionner vers un nouveau doc et fermer le doc type.
C'est bien de l'automation, non ?
Améliorations futures : pouvoir faire ça avec une liste de fichier et pouvoir enregistrer automatiquement avec un nom prédéfinis dans un dossier dont le nom serait dans une cellule d'Excel.
Merci beaucoup aux macroteurs (une fois n'est pas coutume ;-D)
-- JièL / Jean-Louis GOUBERT La FAQ Outlook est la : http://faq.outlook.free.fr
Salut JièL
peut etre une bonne base avec les notes suivantes
http://support.microsoft.com/kb/285332/en-us
http://support.microsoft.com/kb/289830/
http://support.microsoft.com/kb/220607/
--
Bonne journée,
Kyrill
"JièL Goubert" <NoSPAM_JieL.Goubert@laposte-net.NoSPAM> wrote in message
news:eTRlBvLLGHA.2216@TK2MSFTNGP09.phx.gbl...
Salutatous
crosspost sur MPFE et MPFW.
pourriez vous m'aider avec une macro que je ne sais pas faire ? oui ?!
merci ;-)
Voila, j'ai une liste de données sous Excel, je fais des choix dans
celle ci afin de limiter les données à imprimer. Je voudrais ensuite
choisir dans une liste déroulante un nom de document word (ce doc est un
doc "type" dans lequel il existe une fusion avec la liste de données),
ouvrir ce doc dans word, fusionner vers un nouveau doc et fermer le doc
type.
C'est bien de l'automation, non ?
Améliorations futures : pouvoir faire ça avec une liste de fichier et
pouvoir enregistrer automatiquement avec un nom prédéfinis dans un
dossier dont le nom serait dans une cellule d'Excel.
Merci beaucoup aux macroteurs (une fois n'est pas coutume ;-D)
--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr
peut etre une bonne base avec les notes suivantes http://support.microsoft.com/kb/285332/en-us http://support.microsoft.com/kb/289830/ http://support.microsoft.com/kb/220607/
-- Bonne journée,
Kyrill
"JièL Goubert" wrote in message news:
Salutatous
crosspost sur MPFE et MPFW.
pourriez vous m'aider avec une macro que je ne sais pas faire ? oui ?! merci ;-)
Voila, j'ai une liste de données sous Excel, je fais des choix dans celle ci afin de limiter les données à imprimer. Je voudrais ensuite choisir dans une liste déroulante un nom de document word (ce doc est un doc "type" dans lequel il existe une fusion avec la liste de données), ouvrir ce doc dans word, fusionner vers un nouveau doc et fermer le doc type.
C'est bien de l'automation, non ?
Améliorations futures : pouvoir faire ça avec une liste de fichier et pouvoir enregistrer automatiquement avec un nom prédéfinis dans un dossier dont le nom serait dans une cellule d'Excel.
Merci beaucoup aux macroteurs (une fois n'est pas coutume ;-D)
-- JièL / Jean-Louis GOUBERT La FAQ Outlook est la : http://faq.outlook.free.fr
JpPradier
Bonjour JièL
Je te conseillerais ceci : http://minilien.com/?aLI26Sqr0e
;o)
j-p Pas taper !
Bonjour JièL
Je te conseillerais ceci : http://minilien.com/?aLI26Sqr0e
Je te conseillerais ceci : http://minilien.com/?aLI26Sqr0e
...ce qui prouve que tu ne l'a pas lu, sinon tu saurais qu'il n'y est pas fait mention de programmation mais que par contre ça concerne tout ce qui est échange et liaison entre toutes les applis d'Office sans programmer afin d'éviter justement de créer des macros superfétatoire... mais bon, dommage, ça ne répond pas vraiment à ma question concernant la programmation de l'automation :-( (mais peut-être que tu ne sais pas toi non plus en fait :->)
Merci quand même pour la pub ;-)
Pas taper !
(ça c'est pas sur...) ;-)
-- JièL / Jean-Louis GOUBERT La FAQ Outlook est la : http://faq.outlook.free.fr
Je te conseillerais ceci : http://minilien.com/?aLI26Sqr0e
...ce qui prouve que tu ne l'a pas lu, sinon tu saurais qu'il n'y est pas fait mention de programmation mais que par contre ça concerne tout ce qui est échange et liaison entre toutes les applis d'Office sans programmer afin d'éviter justement de créer des macros superfétatoire... mais bon, dommage, ça ne répond pas vraiment à ma question concernant la programmation de l'automation :-( (mais peut-être que tu ne sais pas toi non plus en fait :->)
Merci quand même pour la pub ;-)
Pas taper !
(ça c'est pas sur...) ;-)
--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr
Je te conseillerais ceci : http://minilien.com/?aLI26Sqr0e
...ce qui prouve que tu ne l'a pas lu, sinon tu saurais qu'il n'y est pas fait mention de programmation mais que par contre ça concerne tout ce qui est échange et liaison entre toutes les applis d'Office sans programmer afin d'éviter justement de créer des macros superfétatoire... mais bon, dommage, ça ne répond pas vraiment à ma question concernant la programmation de l'automation :-( (mais peut-être que tu ne sais pas toi non plus en fait :->)
Merci quand même pour la pub ;-)
Pas taper !
(ça c'est pas sur...) ;-)
-- JièL / Jean-Louis GOUBERT La FAQ Outlook est la : http://faq.outlook.free.fr
Je me pose quand même la question : t'es vraiment sur que c'est pas toi qui a écrit la KB ? ;-)))
-- JièL / Jean-Louis GOUBERT La FAQ Outlook est la : http://faq.outlook.free.fr
Le 08/02/2006 16:04 vous avez écrit... :
Salut JièL
peut etre une bonne base avec les notes suivantes http://support.microsoft.com/kb/285332/en-us http://support.microsoft.com/kb/289830/ http://support.microsoft.com/kb/220607/
Je me pose quand même la question : t'es vraiment sur que c'est pas toi qui a écrit la KB ? ;-)))
--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr
Le 08/02/2006 16:04 vous avez écrit... :
Salut JièL
peut etre une bonne base avec les notes suivantes
http://support.microsoft.com/kb/285332/en-us
http://support.microsoft.com/kb/289830/
http://support.microsoft.com/kb/220607/
Je me pose quand même la question : t'es vraiment sur que c'est pas toi qui a écrit la KB ? ;-)))
-- JièL / Jean-Louis GOUBERT La FAQ Outlook est la : http://faq.outlook.free.fr
Le 08/02/2006 16:04 vous avez écrit... :
Salut JièL
peut etre une bonne base avec les notes suivantes http://support.microsoft.com/kb/285332/en-us http://support.microsoft.com/kb/289830/ http://support.microsoft.com/kb/220607/
-- Bonne journée,
Kyrill
JpPradier
"JièL Goubert" a écrit dans le message de news: #
...ce qui prouve que tu ne l'a pas lu, sinon tu saurais qu'il n'y est pas fait mention de programmation mais que par contre ça concerne tout ce qui est échange et liaison entre
toutes les applis d'Office >sans programmer afin d'éviter justement de créer des macros superfétatoire... mais bon, dommage, ça ne répond pas vraiment à ma question concernant la programmation de l'automation :-( (mais >peut-être que tu ne sais pas toi non plus en fait :->)
Merci quand même pour la pub ;-)
Bonjour JièL
Je plaide coupable : je ne l'ai pas 'encore' lu vu que je n'utilise que mon marteau ;-)) Je me suis quand meme un peu penché sur le probleme mais n'étant pas fort dans le pilotage de Word par Excel, je bute sur des détails. d'abord que veux-tu dire par faire des choix dans la liste ? Pour moi, il faut supprimer de la liste les données non choisies pour qu'à l'ouverture du fichier Word la liste se mette à jour. C'est ça ? Ensuite pour Ouvrir le fichier word et le fusionner dans un nouveau document, j'ai adapté l'enregistreur de macro et ca donne ça :
Dim wrdApp Sub openWord() Dim wrdDoc DocChoisi = "C:testtestfusion.doc" Set wrdApp = CreateObject("Word.Application") Set wrdDoc = wrdApp.documents.Open(DocChoisi) wrdApp.Visible = True With wrdDoc.MailMerge .Destination = wdsendtonewdocument ' =0 .SuppressBlankLines = True With .DataSource .FirstRecord = wddefaultfirstrecord ' 1 .LastRecord = wddefaultlastrecord '-16 End With .Execute Pause:úlse End With End Sub
Le problème, c'est qu'excel ne comprend pas les 3 constantes Word ( wdsendtonewdocument , wddefaultfirstrecord , wddefaultlastrecord) et j'ai essayé avec wrdApp.wddefaultlastrecord et d'autre et j'y arrrive pas.
Voila si ca peut t'avancer.
j-p
P.s : pour la pub tu sais ou envoyer la commission :-))
"JièL Goubert" <NoSPAM_JieL.Goubert@laposte-net.NoSPAM> a écrit dans le message de news:
#zDztxWLGHA.3876@TK2MSFTNGP11.phx.gbl...
...ce qui prouve que tu ne l'a pas lu, sinon tu saurais qu'il n'y est pas fait mention
de programmation mais que par contre ça concerne tout ce qui est échange et liaison entre
toutes les applis d'Office >sans programmer afin d'éviter justement de créer des macros
superfétatoire... mais bon, dommage, ça ne répond pas vraiment à ma question concernant la
programmation de l'automation :-( (mais >peut-être que tu ne sais pas toi non plus en fait
:->)
Merci quand même pour la pub ;-)
Bonjour JièL
Je plaide coupable : je ne l'ai pas 'encore' lu vu que je n'utilise que mon marteau ;-))
Je me suis quand meme un peu penché sur le probleme mais n'étant pas fort dans le pilotage
de Word par Excel, je bute sur des détails.
d'abord que veux-tu dire par faire des choix dans la liste ?
Pour moi, il faut supprimer de la liste les données non choisies pour qu'à l'ouverture du
fichier Word la liste se mette à jour. C'est ça ?
Ensuite pour Ouvrir le fichier word et le fusionner dans un nouveau document, j'ai adapté
l'enregistreur de macro et ca donne ça :
Dim wrdApp
Sub openWord()
Dim wrdDoc
DocChoisi = "C:testtestfusion.doc"
Set wrdApp = CreateObject("Word.Application")
Set wrdDoc = wrdApp.documents.Open(DocChoisi)
wrdApp.Visible = True
With wrdDoc.MailMerge
.Destination = wdsendtonewdocument ' =0
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wddefaultfirstrecord ' 1
.LastRecord = wddefaultlastrecord '-16
End With
.Execute Pause:úlse
End With
End Sub
Le problème, c'est qu'excel ne comprend pas les 3 constantes Word ( wdsendtonewdocument ,
wddefaultfirstrecord , wddefaultlastrecord) et j'ai essayé avec wrdApp.wddefaultlastrecord
et d'autre et j'y arrrive pas.
Voila si ca peut t'avancer.
j-p
P.s : pour la pub tu sais ou envoyer la commission :-))
...ce qui prouve que tu ne l'a pas lu, sinon tu saurais qu'il n'y est pas fait mention de programmation mais que par contre ça concerne tout ce qui est échange et liaison entre
toutes les applis d'Office >sans programmer afin d'éviter justement de créer des macros superfétatoire... mais bon, dommage, ça ne répond pas vraiment à ma question concernant la programmation de l'automation :-( (mais >peut-être que tu ne sais pas toi non plus en fait :->)
Merci quand même pour la pub ;-)
Bonjour JièL
Je plaide coupable : je ne l'ai pas 'encore' lu vu que je n'utilise que mon marteau ;-)) Je me suis quand meme un peu penché sur le probleme mais n'étant pas fort dans le pilotage de Word par Excel, je bute sur des détails. d'abord que veux-tu dire par faire des choix dans la liste ? Pour moi, il faut supprimer de la liste les données non choisies pour qu'à l'ouverture du fichier Word la liste se mette à jour. C'est ça ? Ensuite pour Ouvrir le fichier word et le fusionner dans un nouveau document, j'ai adapté l'enregistreur de macro et ca donne ça :
Dim wrdApp Sub openWord() Dim wrdDoc DocChoisi = "C:testtestfusion.doc" Set wrdApp = CreateObject("Word.Application") Set wrdDoc = wrdApp.documents.Open(DocChoisi) wrdApp.Visible = True With wrdDoc.MailMerge .Destination = wdsendtonewdocument ' =0 .SuppressBlankLines = True With .DataSource .FirstRecord = wddefaultfirstrecord ' 1 .LastRecord = wddefaultlastrecord '-16 End With .Execute Pause:úlse End With End Sub
Le problème, c'est qu'excel ne comprend pas les 3 constantes Word ( wdsendtonewdocument , wddefaultfirstrecord , wddefaultlastrecord) et j'ai essayé avec wrdApp.wddefaultlastrecord et d'autre et j'y arrrive pas.
Voila si ca peut t'avancer.
j-p
P.s : pour la pub tu sais ou envoyer la commission :-))
Kyrill
Salut JièL
toujours dans la série on met les doigts dans les 'Grenages' http://support.microsoft.com/kb/289830/EN-US/ http://support.microsoft.com/kb/285333/en-us
un exemple avec acces comme Application pilote http://support.microsoft.com/kb/209882/en-us
Attente en ce qui concerne word et l'automation http://support.microsoft.com/kb/825765/en-us
Et non je n'ai pas ecrit la KB disons juste qu'a chaque fois que j'y fais un tour je prends mon costume de RdB 'Rat de Bibliothèque' :-)))))))
Je me pose quand même la question : t'es vraiment sur que c'est pas toi qui a écrit la KB ? ;-)))
-- JièL / Jean-Louis GOUBERT La FAQ Outlook est la : http://faq.outlook.free.fr
Le 08/02/2006 16:04 vous avez écrit... :
Salut JièL
peut etre une bonne base avec les notes suivantes http://support.microsoft.com/kb/285332/en-us http://support.microsoft.com/kb/289830/ http://support.microsoft.com/kb/220607/
-- Bonne journée,
Kyrill
Salut JièL
toujours dans la série on met les doigts dans les 'Grenages'
http://support.microsoft.com/kb/289830/EN-US/
http://support.microsoft.com/kb/285333/en-us
un exemple avec acces comme Application pilote
http://support.microsoft.com/kb/209882/en-us
Attente en ce qui concerne word et l'automation
http://support.microsoft.com/kb/825765/en-us
Et non je n'ai pas ecrit la KB disons juste qu'a chaque fois que j'y fais un
tour je prends mon costume de RdB 'Rat de Bibliothèque' :-)))))))
--
Bonne journée,
Kyrill
"JièL Goubert" <NoSPAM_JieL.Goubert@laposte-net.NoSPAM> wrote in message
news:#c7wnyWLGHA.3876@TK2MSFTNGP11.phx.gbl...
Je me pose quand même la question : t'es vraiment sur que c'est pas toi
qui a écrit la KB ? ;-)))
--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr
Le 08/02/2006 16:04 vous avez écrit... :
Salut JièL
peut etre une bonne base avec les notes suivantes
http://support.microsoft.com/kb/285332/en-us
http://support.microsoft.com/kb/289830/
http://support.microsoft.com/kb/220607/
toujours dans la série on met les doigts dans les 'Grenages' http://support.microsoft.com/kb/289830/EN-US/ http://support.microsoft.com/kb/285333/en-us
un exemple avec acces comme Application pilote http://support.microsoft.com/kb/209882/en-us
Attente en ce qui concerne word et l'automation http://support.microsoft.com/kb/825765/en-us
Et non je n'ai pas ecrit la KB disons juste qu'a chaque fois que j'y fais un tour je prends mon costume de RdB 'Rat de Bibliothèque' :-)))))))
Je me pose quand même la question : t'es vraiment sur que c'est pas toi qui a écrit la KB ? ;-)))
-- JièL / Jean-Louis GOUBERT La FAQ Outlook est la : http://faq.outlook.free.fr
Le 08/02/2006 16:04 vous avez écrit... :
Salut JièL
peut etre une bonne base avec les notes suivantes http://support.microsoft.com/kb/285332/en-us http://support.microsoft.com/kb/289830/ http://support.microsoft.com/kb/220607/
-- Bonne journée,
Kyrill
Alain CROS
"JpPradier" a écrit dans le message de news: |
Il faut remplacer les constantes par leur valeur ou disposer d'une référence à word.
Alain CROS
| | Le problème, c'est qu'excel ne comprend pas les 3 constantes Word ( wdsendtonewdocument , | wddefaultfirstrecord , wddefaultlastrecord) et j'ai essayé avec wrdApp.wddefaultlastrecord | et d'autre et j'y arrrive pas. | | Voila si ca peut t'avancer. | | j-p | | P.s : pour la pub tu sais ou envoyer la commission :-)) |
"JpPradier" <jp.pradier.JVeuxPasDeSpam@wanadoo.fr> a écrit dans le message de news: uXt3p8WLGHA.1124@TK2MSFTNGP10.phx.gbl...
|
Il faut remplacer les constantes par leur valeur ou disposer d'une référence à word.
Alain CROS
|
| Le problème, c'est qu'excel ne comprend pas les 3 constantes Word ( wdsendtonewdocument ,
| wddefaultfirstrecord , wddefaultlastrecord) et j'ai essayé avec wrdApp.wddefaultlastrecord
| et d'autre et j'y arrrive pas.
|
| Voila si ca peut t'avancer.
|
| j-p
|
| P.s : pour la pub tu sais ou envoyer la commission :-))
|
Il faut remplacer les constantes par leur valeur ou disposer d'une référence à word.
Alain CROS
| | Le problème, c'est qu'excel ne comprend pas les 3 constantes Word ( wdsendtonewdocument , | wddefaultfirstrecord , wddefaultlastrecord) et j'ai essayé avec wrdApp.wddefaultlastrecord | et d'autre et j'y arrrive pas. | | Voila si ca peut t'avancer. | | j-p | | P.s : pour la pub tu sais ou envoyer la commission :-)) |
JpPradier
Bonjour Alain
J'avais essayé ça aussi. Dans tous les cas, ça me renvoie Erreur 5852 "l'objet demandé n'est pas disponible". Le problème vient d'autre part. Pourtant mon code est similaire à l'exemple donné par Kyrill (je l'ai peut-etre récupéré au meme endroit).
j-p
Bonjour Alain
J'avais essayé ça aussi. Dans tous les cas, ça me renvoie Erreur 5852 "l'objet demandé
n'est pas disponible".
Le problème vient d'autre part. Pourtant mon code est similaire à l'exemple donné par
Kyrill (je l'ai peut-etre récupéré au meme endroit).
J'avais essayé ça aussi. Dans tous les cas, ça me renvoie Erreur 5852 "l'objet demandé n'est pas disponible". Le problème vient d'autre part. Pourtant mon code est similaire à l'exemple donné par Kyrill (je l'ai peut-etre récupéré au meme endroit).
avec votre aide j'ai pondu ceci... ça marche parfaitement, il faut juste penser à cocher "Word" dans les références
------------------------------------------------------- Function Publipostage()
Dim WdDoc As Word.Document Dim Chemin, Fichier, Chemin_Fichier, Source As String
' Récupère le chemin des fichiers de la feuille "saisie" ' cellule "Chemin" Chemin = Worksheets("Saisie").Range("Chemin")
' Récupère le nom du fichier de la feuille "saisie" ' cellule "Nom_Fichier" ' choisi dans une liste déroulante Fichier = "" + Worksheets("Saisie").Range("Nom_Fichier")
Chemin_Fichier = Chemin + Fichier
Source = "Procedure.xls" ' a modifier pour que ce soit variable
' Démarrer Word en ouvrant la lettre type Set WdDoc = GetObject(Chemin_Fichier, "Word.Document")
With WdDoc ' Masque Word .Application.Visible = False
' Créé la liaison à la base de données afin de pouvoir ' déplacer facilement les fichiers. ' Source contient le chemin d'accés au fichier .MailMerge.OpenDataSource _ Name:=Source, _ LinkToSource:=True, _ Format:=wdOpenFormatAuto, _ SQLStatement:="SELECT * FROM `Données_Mailing$`"
' Lancer la fusion du 1er et seul enreg vers un nouveau doc With .MailMerge .Destination = wdSendToNewDocument With .DataSource .FirstRecord = 1 .LastRecord = 1 End With .Execute Pause:úlse End With
' Affiche Word .Application.Visible = True
' Ferme le doc ayant servi de modèle sans l'enregistrer .Close (False)
End With
' Active Word Application.ActivateMicrosoftApp xlMicrosoftWord
' Libère la mémoire Set WdDoc = Nothing
End Function
------------------------------------------
Encore merci.
PS Perso à JP : Je le mettrais dans la prochaine version ;-)
-- JièL / Jean-Louis GOUBERT La FAQ Outlook est la : http://faq.outlook.free.fr
Le 08/02/2006 15:26 vous avez écrit... :
Salutatous
crosspost sur MPFE et MPFW.
pourriez vous m'aider avec une macro que je ne sais pas faire ? oui ?! merci ;-)
Voila, j'ai une liste de données sous Excel, je fais des choix dans celle ci afin de limiter les données à imprimer. Je voudrais ensuite choisir dans une liste déroulante un nom de document word (ce doc est un doc "type" dans lequel il existe une fusion avec la liste de données), ouvrir ce doc dans word, fusionner vers un nouveau doc et fermer le doc type.
C'est bien de l'automation, non ?
Améliorations futures : pouvoir faire ça avec une liste de fichier et pouvoir enregistrer automatiquement avec un nom prédéfinis dans un dossier dont le nom serait dans une cellule d'Excel.
Merci beaucoup aux macroteurs (une fois n'est pas coutume ;-D)
avec votre aide j'ai pondu ceci... ça marche parfaitement, il faut juste
penser à cocher "Word" dans les références
-------------------------------------------------------
Function Publipostage()
Dim WdDoc As Word.Document
Dim Chemin, Fichier, Chemin_Fichier, Source As String
' Récupère le chemin des fichiers de la feuille "saisie"
' cellule "Chemin"
Chemin = Worksheets("Saisie").Range("Chemin")
' Récupère le nom du fichier de la feuille "saisie"
' cellule "Nom_Fichier"
' choisi dans une liste déroulante
Fichier = "" + Worksheets("Saisie").Range("Nom_Fichier")
Chemin_Fichier = Chemin + Fichier
Source = "Procedure.xls" ' a modifier pour que ce soit variable
' Démarrer Word en ouvrant la lettre type
Set WdDoc = GetObject(Chemin_Fichier, "Word.Document")
With WdDoc
' Masque Word
.Application.Visible = False
' Créé la liaison à la base de données afin de pouvoir
' déplacer facilement les fichiers.
' Source contient le chemin d'accés au fichier
.MailMerge.OpenDataSource _
Name:=Source, _
LinkToSource:=True, _
Format:=wdOpenFormatAuto, _
SQLStatement:="SELECT * FROM `Données_Mailing$`"
' Lancer la fusion du 1er et seul enreg vers un nouveau doc
With .MailMerge
.Destination = wdSendToNewDocument
With .DataSource
.FirstRecord = 1
.LastRecord = 1
End With
.Execute Pause:úlse
End With
' Affiche Word
.Application.Visible = True
' Ferme le doc ayant servi de modèle sans l'enregistrer
.Close (False)
End With
' Active Word
Application.ActivateMicrosoftApp xlMicrosoftWord
' Libère la mémoire
Set WdDoc = Nothing
End Function
------------------------------------------
Encore merci.
PS Perso à JP : Je le mettrais dans la prochaine version ;-)
--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr
Le 08/02/2006 15:26 vous avez écrit... :
Salutatous
crosspost sur MPFE et MPFW.
pourriez vous m'aider avec une macro que je ne sais pas faire ? oui ?!
merci ;-)
Voila, j'ai une liste de données sous Excel, je fais des choix dans
celle ci afin de limiter les données à imprimer. Je voudrais ensuite
choisir dans une liste déroulante un nom de document word (ce doc est un
doc "type" dans lequel il existe une fusion avec la liste de données),
ouvrir ce doc dans word, fusionner vers un nouveau doc et fermer le doc
type.
C'est bien de l'automation, non ?
Améliorations futures : pouvoir faire ça avec une liste de fichier et
pouvoir enregistrer automatiquement avec un nom prédéfinis dans un
dossier dont le nom serait dans une cellule d'Excel.
Merci beaucoup aux macroteurs (une fois n'est pas coutume ;-D)
avec votre aide j'ai pondu ceci... ça marche parfaitement, il faut juste penser à cocher "Word" dans les références
------------------------------------------------------- Function Publipostage()
Dim WdDoc As Word.Document Dim Chemin, Fichier, Chemin_Fichier, Source As String
' Récupère le chemin des fichiers de la feuille "saisie" ' cellule "Chemin" Chemin = Worksheets("Saisie").Range("Chemin")
' Récupère le nom du fichier de la feuille "saisie" ' cellule "Nom_Fichier" ' choisi dans une liste déroulante Fichier = "" + Worksheets("Saisie").Range("Nom_Fichier")
Chemin_Fichier = Chemin + Fichier
Source = "Procedure.xls" ' a modifier pour que ce soit variable
' Démarrer Word en ouvrant la lettre type Set WdDoc = GetObject(Chemin_Fichier, "Word.Document")
With WdDoc ' Masque Word .Application.Visible = False
' Créé la liaison à la base de données afin de pouvoir ' déplacer facilement les fichiers. ' Source contient le chemin d'accés au fichier .MailMerge.OpenDataSource _ Name:=Source, _ LinkToSource:=True, _ Format:=wdOpenFormatAuto, _ SQLStatement:="SELECT * FROM `Données_Mailing$`"
' Lancer la fusion du 1er et seul enreg vers un nouveau doc With .MailMerge .Destination = wdSendToNewDocument With .DataSource .FirstRecord = 1 .LastRecord = 1 End With .Execute Pause:úlse End With
' Affiche Word .Application.Visible = True
' Ferme le doc ayant servi de modèle sans l'enregistrer .Close (False)
End With
' Active Word Application.ActivateMicrosoftApp xlMicrosoftWord
' Libère la mémoire Set WdDoc = Nothing
End Function
------------------------------------------
Encore merci.
PS Perso à JP : Je le mettrais dans la prochaine version ;-)
-- JièL / Jean-Louis GOUBERT La FAQ Outlook est la : http://faq.outlook.free.fr
Le 08/02/2006 15:26 vous avez écrit... :
Salutatous
crosspost sur MPFE et MPFW.
pourriez vous m'aider avec une macro que je ne sais pas faire ? oui ?! merci ;-)
Voila, j'ai une liste de données sous Excel, je fais des choix dans celle ci afin de limiter les données à imprimer. Je voudrais ensuite choisir dans une liste déroulante un nom de document word (ce doc est un doc "type" dans lequel il existe une fusion avec la liste de données), ouvrir ce doc dans word, fusionner vers un nouveau doc et fermer le doc type.
C'est bien de l'automation, non ?
Améliorations futures : pouvoir faire ça avec une liste de fichier et pouvoir enregistrer automatiquement avec un nom prédéfinis dans un dossier dont le nom serait dans une cellule d'Excel.
Merci beaucoup aux macroteurs (une fois n'est pas coutume ;-D)