Exécuter une macro Word à partir d'Excel (publipostage)
25 réponses
mel63
Bonjour,
Je sais que cette question vous paraitra vu et revue mais cela fait 2 jours que je cherche sur internet et que je n'ai pas trouvé de solution à mon problème.
Je souhaite effectuer un publipostage avec Word à partir de données Excel. Jusque là tout est ok.
J'ai aussi fait une macro Word pour pouvoir créer un fichier word par facture créée. C'est ok aussi.
Sauf que j'aimerai pouvoir lancer ma macro Word à partir d'Excel. J'ai trouvé le code suivant :
Sub Facture()
Dim oWdApp As Word.Application
'Lancer Word
Set oWdApp = CreateObject("Word.Application")
With oWdApp
'Afficher Word si nécessaire...
.Visible = True
'Ouvrir le document Word
.Documents.Open ("source du doc")
'Exécuter la macro
'.Run "EnregFacture"
End With
'Libérer les ressources
Set oWdApp = Nothing
End Sub
Word s'ouvre bien mais c'est tout ! La macro de Word ne semble pas se lancer ...
En plus de ça, serait-il possible de pouvoir faire le publipostage à partir d'Excel en choisissant les lignes concernées par l'envoi ?
Bonjour, Je sais que cette question vous paraitra vu et revue mais cela fait 2 jours que je cherche sur internet et que je n'ai pas trouvé de solution à mon problème. Je souhaite effectuer un publipostage avec Word à partir de données Excel. Jusque là tout est ok. J'ai aussi fait une macro Word pour pouvoir créer un fichier word par facture créée. C'est ok aussi. Sauf que j'aimerai pouvoir lancer ma macro Word à partir d'Excel. J'ai trouvé le code suivant : Sub Facture() Dim oWdApp As Word.Application 'Lancer Word Set oWdApp = CreateObject("Word.Application") With oWdApp 'Afficher Word si nécessaire... .Visible = True 'Ouvrir le document Word .Documents.Open ("source du doc") 'Exécuter la macro '.Run "EnregFacture" End With 'Libérer les ressources Set oWdApp = Nothing End Sub Word s'ouvre bien mais c'est tout ! La macro de Word ne semble pas se lancer ... En plus de ça, serait-il possible de pouvoir faire le publipostage à partir d'Excel en choisissant les lignes concernées par l'envoi ? Merci d'avance pour votre aide (je sature !)
A ma connaissance - mais je ne suis pas un spécialiste de Word - il y a une option permettant de bloquer ou d'exécuter (automatiquement ?) des macros à l'ouverture de Word. Ne serait-ce pas de ce côté que tu dois chercher ? -- François
mel63 a formulé ce jeudi :
Bonjour,
Je sais que cette question vous paraitra vu et revue mais cela fait 2 jours
que je cherche sur internet et que je n'ai pas trouvé de solution à mon
problème.
Je souhaite effectuer un publipostage avec Word à partir de données Excel.
Jusque là tout est ok.
J'ai aussi fait une macro Word pour pouvoir créer un fichier word par facture
créée. C'est ok aussi.
Sauf que j'aimerai pouvoir lancer ma macro Word à partir d'Excel. J'ai trouvé
le code suivant :
Sub Facture()
Dim oWdApp As Word.Application
'Lancer Word
Set oWdApp = CreateObject("Word.Application")
With oWdApp
'Afficher Word si nécessaire...
.Visible = True
'Ouvrir le document Word
.Documents.Open ("source du doc")
'Exécuter la macro
'.Run "EnregFacture"
End With
'Libérer les ressources
Set oWdApp = Nothing
End Sub
Word s'ouvre bien mais c'est tout ! La macro de Word ne semble pas se lancer
...
En plus de ça, serait-il possible de pouvoir faire le publipostage à partir
d'Excel en choisissant les lignes concernées par l'envoi ?
Merci d'avance pour votre aide (je sature !)
A ma connaissance - mais je ne suis pas un spécialiste de Word - il y a
une option permettant de bloquer ou d'exécuter (automatiquement ?) des
macros à l'ouverture de Word.
Ne serait-ce pas de ce côté que tu dois chercher ?
Bonjour, Je sais que cette question vous paraitra vu et revue mais cela fait 2 jours que je cherche sur internet et que je n'ai pas trouvé de solution à mon problème. Je souhaite effectuer un publipostage avec Word à partir de données Excel. Jusque là tout est ok. J'ai aussi fait une macro Word pour pouvoir créer un fichier word par facture créée. C'est ok aussi. Sauf que j'aimerai pouvoir lancer ma macro Word à partir d'Excel. J'ai trouvé le code suivant : Sub Facture() Dim oWdApp As Word.Application 'Lancer Word Set oWdApp = CreateObject("Word.Application") With oWdApp 'Afficher Word si nécessaire... .Visible = True 'Ouvrir le document Word .Documents.Open ("source du doc") 'Exécuter la macro '.Run "EnregFacture" End With 'Libérer les ressources Set oWdApp = Nothing End Sub Word s'ouvre bien mais c'est tout ! La macro de Word ne semble pas se lancer ... En plus de ça, serait-il possible de pouvoir faire le publipostage à partir d'Excel en choisissant les lignes concernées par l'envoi ? Merci d'avance pour votre aide (je sature !)
A ma connaissance - mais je ne suis pas un spécialiste de Word - il y a une option permettant de bloquer ou d'exécuter (automatiquement ?) des macros à l'ouverture de Word. Ne serait-ce pas de ce côté que tu dois chercher ? -- François
Geo
Bonjour
'.Run "EnregFacture"
Cette ligne est en commentaire, elle ne fera pas grand-chose.
Bonjour
'.Run "EnregFacture"
Cette ligne est en commentaire, elle ne fera pas grand-chose.
Cette ligne est en commentaire, elle ne fera pas grand-chose.
Michd
Bonjour, Pour ajouter au commentaire de Geo, la macro doit être située dans un "MODULE STANDARD" pour que cela fonctionne... De plus si le nom du fichier Word contient un espace dans son nom, tu dois utiliser quelque chose comme ceci. Cette approche fonctionne même s'il n'y a pas d'espace dans le nom du fichier Word. Ne pas oublier le point d'exclamation devant le nom de la macro. (Ce qui suit n'a pas été testé, cependant je ne dois pas être loin de la vérité! ;-)) Dim LaMacro As String LaMacro = "'" & oWdApp.activedocument.name & "'!EnregFacture" oWdApp.Run LaMacro Si l'appel de la macro doit insérer des paramètres : oWdApp.Run LaMacro, Paramètre1, Paramètres2 Ta procédure devient alors : '--------------------------------------------------------------- Sub Test() Dim oWdApp As Word.Application, LaMacro As String Dim Chemin As String, Fichier As String '*********Définir les variables*********** Chemin = "C:UsersTon ProfilDocuments" Fichier = "MonFichierWord.docm" '************************************ Set oWdApp = CreateObject("Word.application") With oWdApp 'Afficher Word si nécessaire... .Visible = True 'Ouvrir le document Word .Documents.Open (Chemin & Fichier) LaMacro = "'" & .ActiveDocument.Name & "'!EnregFacture" 'Exécuter la macro .Run LaMacro End With 'Libérer les ressources Set oWdApp = Nothing End Sub '--------------------------------------------------------------- MichD
Bonjour,
Pour ajouter au commentaire de Geo, la macro doit être située dans un "MODULE STANDARD" pour que
cela fonctionne...
De plus si le nom du fichier Word contient un espace dans son nom, tu dois utiliser quelque chose
comme ceci. Cette approche fonctionne même s'il n'y a pas d'espace dans le nom du fichier Word. Ne
pas oublier le point d'exclamation devant le nom de la macro. (Ce qui suit n'a pas été testé,
cependant je ne dois pas être loin de la vérité! ;-))
Dim LaMacro As String
LaMacro = "'" & oWdApp.activedocument.name & "'!EnregFacture"
oWdApp.Run LaMacro
Si l'appel de la macro doit insérer des paramètres :
oWdApp.Run LaMacro, Paramètre1, Paramètres2
Ta procédure devient alors :
'---------------------------------------------------------------
Sub Test()
Dim oWdApp As Word.Application, LaMacro As String
Dim Chemin As String, Fichier As String
Set oWdApp = CreateObject("Word.application")
With oWdApp
'Afficher Word si nécessaire...
.Visible = True
'Ouvrir le document Word
.Documents.Open (Chemin & Fichier)
LaMacro = "'" & .ActiveDocument.Name & "'!EnregFacture"
'Exécuter la macro
.Run LaMacro
End With
'Libérer les ressources
Set oWdApp = Nothing
End Sub
'---------------------------------------------------------------
Bonjour, Pour ajouter au commentaire de Geo, la macro doit être située dans un "MODULE STANDARD" pour que cela fonctionne... De plus si le nom du fichier Word contient un espace dans son nom, tu dois utiliser quelque chose comme ceci. Cette approche fonctionne même s'il n'y a pas d'espace dans le nom du fichier Word. Ne pas oublier le point d'exclamation devant le nom de la macro. (Ce qui suit n'a pas été testé, cependant je ne dois pas être loin de la vérité! ;-)) Dim LaMacro As String LaMacro = "'" & oWdApp.activedocument.name & "'!EnregFacture" oWdApp.Run LaMacro Si l'appel de la macro doit insérer des paramètres : oWdApp.Run LaMacro, Paramètre1, Paramètres2 Ta procédure devient alors : '--------------------------------------------------------------- Sub Test() Dim oWdApp As Word.Application, LaMacro As String Dim Chemin As String, Fichier As String '*********Définir les variables*********** Chemin = "C:UsersTon ProfilDocuments" Fichier = "MonFichierWord.docm" '************************************ Set oWdApp = CreateObject("Word.application") With oWdApp 'Afficher Word si nécessaire... .Visible = True 'Ouvrir le document Word .Documents.Open (Chemin & Fichier) LaMacro = "'" & .ActiveDocument.Name & "'!EnregFacture" 'Exécuter la macro .Run LaMacro End With 'Libérer les ressources Set oWdApp = Nothing End Sub '--------------------------------------------------------------- MichD
Michd
Oups! dans la procédure je déclare cette variable ainsi : Dim oWdApp As Word.Application Cette manière de procédure nécessite la déclaration de la référence "Word Application xx objects library" Pour ce faire, barre des menus / références / et tu coches cette bibliothèque dans la liste. Afin d'éviter cela, tu peux déclarer la variable comme ceci : Dim oWdApp As Object MichD
Oups! dans la procédure je déclare cette variable ainsi :
Dim oWdApp As Word.Application
Cette manière de procédure nécessite la déclaration de la référence "Word Application xx objects
library"
Pour ce faire, barre des menus / références / et tu coches cette bibliothèque dans la liste.
Afin d'éviter cela, tu peux déclarer la variable comme ceci :
Oups! dans la procédure je déclare cette variable ainsi : Dim oWdApp As Word.Application Cette manière de procédure nécessite la déclaration de la référence "Word Application xx objects library" Pour ce faire, barre des menus / références / et tu coches cette bibliothèque dans la liste. Afin d'éviter cela, tu peux déclarer la variable comme ceci : Dim oWdApp As Object MichD
mel63
Le jeudi 12 Juillet 2018 à 14:30 par Sibusate :
mel63 a formulé ce jeudi :
Bonjour, Je sais que cette question vous paraitra vu et revue mais cela fait 2 jours que je cherche sur internet et que je n'ai pas trouvé de solution à mon problème. Je souhaite effectuer un publipostage avec Word à partir de données Excel. Jusque là tout est ok. J'ai aussi fait une macro Word pour pouvoir créer un fichier word par facture créée. C'est ok aussi. Sauf que j'aimerai pouvoir lancer ma macro Word à partir d'Excel. J'ai trouvé le code suivant : Sub Facture() Dim oWdApp As Word.Application 'Lancer Word Set oWdApp = CreateObject("Word.Application") With oWdApp 'Afficher Word si nécessaire... .Visible = True 'Ouvrir le document Word .Documents.Open ("source du doc") 'Exécuter la macro '.Run "EnregFacture" End With 'Libérer les ressources Set oWdApp = Nothing End Sub Word s'ouvre bien mais c'est tout ! La macro de Word ne semble pas se lancer ... En plus de ça, serait-il possible de pouvoir faire le publipostage à partir d'Excel en choisissant les lignes concernées par l'envoi ? Merci d'avance pour votre aide (je sature !)
A ma connaissance - mais je ne suis pas un spécialiste de Word - il y a une option permettant de bloquer ou d'exécuter (automatiquement ?) des macros à l'ouverture de Word. Ne serait-ce pas de ce côté que tu dois chercher ? -- François
Bonjour, Merci pour ta réponse, j'ai bien tenté de faire démarrer automatiquement au lancement du fichier Word mais pas de résultat ...
Le jeudi 12 Juillet 2018 à 14:30 par Sibusate :
> mel63 a formulé ce jeudi :
>> Bonjour,
>>
>> Je sais que cette question vous paraitra vu et revue mais cela fait 2 jours
>> que je cherche sur internet et que je n'ai pas trouvé de solution
>> à mon
>> problème.
>>
>> Je souhaite effectuer un publipostage avec Word à partir de
>> données Excel.
>> Jusque là tout est ok.
>> J'ai aussi fait une macro Word pour pouvoir créer un fichier word par
>> facture
>> créée. C'est ok aussi.
>>
>> Sauf que j'aimerai pouvoir lancer ma macro Word à partir d'Excel. J'ai
>> trouvé
>> le code suivant :
>> Sub Facture()
>>
>> Dim oWdApp As Word.Application
>>
>> 'Lancer Word
>> Set oWdApp = CreateObject("Word.Application")
>>
>> With oWdApp
>> 'Afficher Word si nécessaire...
>> .Visible = True
>> 'Ouvrir le document Word
>> .Documents.Open ("source du doc")
>> 'Exécuter la macro
>> '.Run "EnregFacture"
>>
>> End With
>>
>> 'Libérer les ressources
>> Set oWdApp = Nothing
>>
>> End Sub
>>
>> Word s'ouvre bien mais c'est tout ! La macro de Word ne semble pas se lancer
>> ...
>>
>>
>> En plus de ça, serait-il possible de pouvoir faire le publipostage
>> à partir
>> d'Excel en choisissant les lignes concernées par l'envoi ?
>>
>> Merci d'avance pour votre aide (je sature !)
>>
>>
> A ma connaissance - mais je ne suis pas un spécialiste de Word - il y a
> une option permettant de bloquer ou d'exécuter (automatiquement ?) des
> macros à l'ouverture de Word.
> Ne serait-ce pas de ce côté que tu dois chercher ?
>
> --
> François
Bonjour,
Merci pour ta réponse, j'ai bien tenté de faire démarrer automatiquement au lancement du fichier Word mais pas de résultat ...
Bonjour, Je sais que cette question vous paraitra vu et revue mais cela fait 2 jours que je cherche sur internet et que je n'ai pas trouvé de solution à mon problème. Je souhaite effectuer un publipostage avec Word à partir de données Excel. Jusque là tout est ok. J'ai aussi fait une macro Word pour pouvoir créer un fichier word par facture créée. C'est ok aussi. Sauf que j'aimerai pouvoir lancer ma macro Word à partir d'Excel. J'ai trouvé le code suivant : Sub Facture() Dim oWdApp As Word.Application 'Lancer Word Set oWdApp = CreateObject("Word.Application") With oWdApp 'Afficher Word si nécessaire... .Visible = True 'Ouvrir le document Word .Documents.Open ("source du doc") 'Exécuter la macro '.Run "EnregFacture" End With 'Libérer les ressources Set oWdApp = Nothing End Sub Word s'ouvre bien mais c'est tout ! La macro de Word ne semble pas se lancer ... En plus de ça, serait-il possible de pouvoir faire le publipostage à partir d'Excel en choisissant les lignes concernées par l'envoi ? Merci d'avance pour votre aide (je sature !)
A ma connaissance - mais je ne suis pas un spécialiste de Word - il y a une option permettant de bloquer ou d'exécuter (automatiquement ?) des macros à l'ouverture de Word. Ne serait-ce pas de ce côté que tu dois chercher ? -- François
Bonjour, Merci pour ta réponse, j'ai bien tenté de faire démarrer automatiquement au lancement du fichier Word mais pas de résultat ...
mel63
Le jeudi 12 Juillet 2018 à 14:48 par Geo :
Bonjour
'.Run "EnregFacture"
Cette ligne est en commentaire, elle ne fera pas grand-chose.
Bonjour, Merci pour ta réponse je n'avais pas remarqué avoir copié cette erreur. Mais en réalité j'ai tellement essayé toutes les solutions que cet " ' " est resté là. Justement c'est cette ligne qui ne marche pas si je l'active !
Le jeudi 12 Juillet 2018 à 14:48 par Geo :
> Bonjour
>
>> '.Run "EnregFacture"
>>
>>
> Cette ligne est en commentaire, elle ne fera pas grand-chose.
Bonjour,
Merci pour ta réponse je n'avais pas remarqué avoir copié cette erreur.
Mais en réalité j'ai tellement essayé toutes les solutions que cet " ' " est resté là. Justement c'est cette ligne qui ne marche pas si je l'active !
Cette ligne est en commentaire, elle ne fera pas grand-chose.
Bonjour, Merci pour ta réponse je n'avais pas remarqué avoir copié cette erreur. Mais en réalité j'ai tellement essayé toutes les solutions que cet " ' " est resté là. Justement c'est cette ligne qui ne marche pas si je l'active !
mel63
Le jeudi 12 Juillet 2018 à 14:48 par Geo :
Bonjour
'.Run "EnregFacture"
Cette ligne est en commentaire, elle ne fera pas grand-chose.
Bonjour, Merci pour ta réponse je n'avais pas remarqué avoir copié cette erreur. Mais en réalité j'ai tellement essayé toutes les solutions que cet " ' " est resté là. Justement c'est cette ligne qui ne marche pas si je l'active !
Le jeudi 12 Juillet 2018 à 14:48 par Geo :
> Bonjour
>
>> '.Run "EnregFacture"
>>
>>
> Cette ligne est en commentaire, elle ne fera pas grand-chose.
Bonjour,
Merci pour ta réponse je n'avais pas remarqué avoir copié cette erreur.
Mais en réalité j'ai tellement essayé toutes les solutions que cet " ' " est resté là. Justement c'est cette ligne qui ne marche pas si je l'active !
Cette ligne est en commentaire, elle ne fera pas grand-chose.
Bonjour, Merci pour ta réponse je n'avais pas remarqué avoir copié cette erreur. Mais en réalité j'ai tellement essayé toutes les solutions que cet " ' " est resté là. Justement c'est cette ligne qui ne marche pas si je l'active !
mel63
Le jeudi 12 Juillet 2018 à 14:48 par Geo :
Bonjour
'.Run "EnregFacture"
Cette ligne est en commentaire, elle ne fera pas grand-chose.
Bonjour, Merci pour ta réponse je n'avais pas remarqué avoir copié cette erreur. Mais en réalité j'ai tellement essayé toutes les solutions que cet " ' " est resté là. Justement c'est cette ligne qui ne marche pas si je l'active !
Le jeudi 12 Juillet 2018 à 14:48 par Geo :
> Bonjour
>
>> '.Run "EnregFacture"
>>
>>
> Cette ligne est en commentaire, elle ne fera pas grand-chose.
Bonjour,
Merci pour ta réponse je n'avais pas remarqué avoir copié cette erreur.
Mais en réalité j'ai tellement essayé toutes les solutions que cet " ' " est resté là. Justement c'est cette ligne qui ne marche pas si je l'active !
Cette ligne est en commentaire, elle ne fera pas grand-chose.
Bonjour, Merci pour ta réponse je n'avais pas remarqué avoir copié cette erreur. Mais en réalité j'ai tellement essayé toutes les solutions que cet " ' " est resté là. Justement c'est cette ligne qui ne marche pas si je l'active !
mel63
Le jeudi 12 Juillet 2018 à 15:36 par Michd :
Bonjour, Pour ajouter au commentaire de Geo, la macro doit être située dans un "MODULE STANDARD" pour que cela fonctionne... De plus si le nom du fichier Word contient un espace dans son nom, tu dois utiliser quelque chose comme ceci. Cette approche fonctionne même s'il n'y a pas d'espace dans le nom du fichier Word. Ne pas oublier le point d'exclamation devant le nom de la macro. (Ce qui suit n'a pas été testé, cependant je ne dois pas être loin de la vérité! ;-)) Dim LaMacro As String LaMacro = "'" & oWdApp.activedocument.name & "'!EnregFacture" oWdApp.Run LaMacro Si l'appel de la macro doit insérer des paramètres : oWdApp.Run LaMacro, Paramètre1, Paramètres2 Ta procédure devient alors : '--------------------------------------------------------------- Sub Test() Dim oWdApp As Word.Application, LaMacro As String Dim Chemin As String, Fichier As String '*********Définir les variables*********** Chemin = "C:UsersTon ProfilDocuments" Fichier = "MonFichierWord.docm" '************************************ Set oWdApp = CreateObject("Word.application") With oWdApp 'Afficher Word si nécessaire... .Visible = True 'Ouvrir le document Word .Documents.Open (Chemin & Fichier) LaMacro = "'" & .ActiveDocument.Name & "'!EnregFacture" 'Exécuter la macro .Run LaMacro End With 'Libérer les ressources Set oWdApp = Nothing End Sub '--------------------------------------------------------------- MichD
Bonjour, Merci pour ta réponse. Je viens de tester ton code mais ça ne marche toujours pas ! La ligne Dim Chemin As String, Fichier As String ne lui plait pas. Et il me met toujours un bug à ".Run LaMacro". Il ouvre mon fichier word mais n'exécute pas la macro ...
Le jeudi 12 Juillet 2018 à 15:36 par Michd :
> Bonjour,
>
> Pour ajouter au commentaire de Geo, la macro doit être située dans
> un "MODULE STANDARD" pour que
> cela fonctionne...
>
> De plus si le nom du fichier Word contient un espace dans son nom, tu dois
> utiliser quelque chose
> comme ceci. Cette approche fonctionne même s'il n'y a pas d'espace dans
> le nom du fichier Word. Ne
> pas oublier le point d'exclamation devant le nom de la macro. (Ce qui suit n'a
> pas été testé,
> cependant je ne dois pas être loin de la vérité! ;-))
>
> Dim LaMacro As String
> LaMacro = "'" & oWdApp.activedocument.name &
> "'!EnregFacture"
> oWdApp.Run LaMacro
>
> Si l'appel de la macro doit insérer des paramètres :
> oWdApp.Run LaMacro, Paramètre1, Paramètres2
>
> Ta procédure devient alors :
>
> '---------------------------------------------------------------
> Sub Test()
> Dim oWdApp As Word.Application, LaMacro As String
> Dim Chemin As String, Fichier As String
>
> '*********Définir les variables***********
> Chemin = "C:UsersTon ProfilDocuments"
> Fichier = "MonFichierWord.docm"
> '************************************
>
> Set oWdApp = CreateObject("Word.application")
> With oWdApp
> 'Afficher Word si nécessaire...
> .Visible = True
> 'Ouvrir le document Word
> .Documents.Open (Chemin & Fichier)
> LaMacro = "'" & .ActiveDocument.Name &
> "'!EnregFacture"
> 'Exécuter la macro
> .Run LaMacro
> End With
> 'Libérer les ressources
> Set oWdApp = Nothing
> End Sub
> '---------------------------------------------------------------
>
> MichD
Bonjour,
Merci pour ta réponse.
Je viens de tester ton code mais ça ne marche toujours pas ! La ligne Dim Chemin As String, Fichier As String ne lui plait pas.
Et il me met toujours un bug à ".Run LaMacro".
Il ouvre mon fichier word mais n'exécute pas la macro ...
Bonjour, Pour ajouter au commentaire de Geo, la macro doit être située dans un "MODULE STANDARD" pour que cela fonctionne... De plus si le nom du fichier Word contient un espace dans son nom, tu dois utiliser quelque chose comme ceci. Cette approche fonctionne même s'il n'y a pas d'espace dans le nom du fichier Word. Ne pas oublier le point d'exclamation devant le nom de la macro. (Ce qui suit n'a pas été testé, cependant je ne dois pas être loin de la vérité! ;-)) Dim LaMacro As String LaMacro = "'" & oWdApp.activedocument.name & "'!EnregFacture" oWdApp.Run LaMacro Si l'appel de la macro doit insérer des paramètres : oWdApp.Run LaMacro, Paramètre1, Paramètres2 Ta procédure devient alors : '--------------------------------------------------------------- Sub Test() Dim oWdApp As Word.Application, LaMacro As String Dim Chemin As String, Fichier As String '*********Définir les variables*********** Chemin = "C:UsersTon ProfilDocuments" Fichier = "MonFichierWord.docm" '************************************ Set oWdApp = CreateObject("Word.application") With oWdApp 'Afficher Word si nécessaire... .Visible = True 'Ouvrir le document Word .Documents.Open (Chemin & Fichier) LaMacro = "'" & .ActiveDocument.Name & "'!EnregFacture" 'Exécuter la macro .Run LaMacro End With 'Libérer les ressources Set oWdApp = Nothing End Sub '--------------------------------------------------------------- MichD
Bonjour, Merci pour ta réponse. Je viens de tester ton code mais ça ne marche toujours pas ! La ligne Dim Chemin As String, Fichier As String ne lui plait pas. Et il me met toujours un bug à ".Run LaMacro". Il ouvre mon fichier word mais n'exécute pas la macro ...
mel63
Le jeudi 12 Juillet 2018 à 12:16 par mel63 :
Bonjour, Je sais que cette question vous paraitra vu et revue mais cela fait 2 jours que je cherche sur internet et que je n'ai pas trouvé de solution à mon problème. Je souhaite effectuer un publipostage avec Word à partir de données Excel. Jusque là tout est ok. J'ai aussi fait une macro Word pour pouvoir créer un fichier word par facture créée. C'est ok aussi. Sauf que j'aimerai pouvoir lancer ma macro Word à partir d'Excel. J'ai trouvé le code suivant : Sub Facture() Dim oWdApp As Word.Application 'Lancer Word Set oWdApp = CreateObject("Word.Application") With oWdApp 'Afficher Word si nécessaire... .Visible = True 'Ouvrir le document Word .Documents.Open ("source du doc") 'Exécuter la macro '.Run "EnregFacture" End With 'Libérer les ressources Set oWdApp = Nothing End Sub Word s'ouvre bien mais c'est tout ! La macro de Word ne semble pas se lancer ... En plus de ça, serait-il possible de pouvoir faire le publipostage à partir d'Excel en choisissant les lignes concernées par l'envoi ? Merci d'avance pour votre aide (je sature !)
Je pense qu'il y a déjà un problème par rapport à mon fichier de publipostage Word. En effet, comme il est relié au fichier Excel, il faut à chaque ouverture confirmer que l'on veut conserver le lien. Or, dans le cas où j'active le fichier depuis Excel, il n'y a pas de demande de confirmation, le lien ne doit pas se faire.
Le jeudi 12 Juillet 2018 à 12:16 par mel63 :
> Bonjour,
>
> Je sais que cette question vous paraitra vu et revue mais cela fait 2 jours que
> je cherche sur internet et que je n'ai pas trouvé de solution à
> mon problème.
>
> Je souhaite effectuer un publipostage avec Word à partir de
> données Excel. Jusque là tout est ok.
> J'ai aussi fait une macro Word pour pouvoir créer un fichier word par
> facture créée. C'est ok aussi.
>
> Sauf que j'aimerai pouvoir lancer ma macro Word à partir d'Excel. J'ai
> trouvé le code suivant :
> Sub Facture()
>
> Dim oWdApp As Word.Application
>
> 'Lancer Word
> Set oWdApp = CreateObject("Word.Application")
>
> With oWdApp
> 'Afficher Word si nécessaire...
> .Visible = True
> 'Ouvrir le document Word
> .Documents.Open ("source du doc")
> 'Exécuter la macro
> '.Run "EnregFacture"
>
> End With
>
> 'Libérer les ressources
> Set oWdApp = Nothing
>
> End Sub
>
> Word s'ouvre bien mais c'est tout ! La macro de Word ne semble pas se lancer
> ...
>
> En plus de ça, serait-il possible de pouvoir faire le publipostage
> à partir d'Excel en choisissant les lignes concernées par l'envoi
> ?
>
> Merci d'avance pour votre aide (je sature !)
Je pense qu'il y a déjà un problème par rapport à mon fichier de publipostage Word. En effet, comme il est relié au fichier Excel, il faut à chaque ouverture confirmer que l'on veut conserver le lien.
Or, dans le cas où j'active le fichier depuis Excel, il n'y a pas de demande de confirmation, le lien ne doit pas se faire.
Bonjour, Je sais que cette question vous paraitra vu et revue mais cela fait 2 jours que je cherche sur internet et que je n'ai pas trouvé de solution à mon problème. Je souhaite effectuer un publipostage avec Word à partir de données Excel. Jusque là tout est ok. J'ai aussi fait une macro Word pour pouvoir créer un fichier word par facture créée. C'est ok aussi. Sauf que j'aimerai pouvoir lancer ma macro Word à partir d'Excel. J'ai trouvé le code suivant : Sub Facture() Dim oWdApp As Word.Application 'Lancer Word Set oWdApp = CreateObject("Word.Application") With oWdApp 'Afficher Word si nécessaire... .Visible = True 'Ouvrir le document Word .Documents.Open ("source du doc") 'Exécuter la macro '.Run "EnregFacture" End With 'Libérer les ressources Set oWdApp = Nothing End Sub Word s'ouvre bien mais c'est tout ! La macro de Word ne semble pas se lancer ... En plus de ça, serait-il possible de pouvoir faire le publipostage à partir d'Excel en choisissant les lignes concernées par l'envoi ? Merci d'avance pour votre aide (je sature !)
Je pense qu'il y a déjà un problème par rapport à mon fichier de publipostage Word. En effet, comme il est relié au fichier Excel, il faut à chaque ouverture confirmer que l'on veut conserver le lien. Or, dans le cas où j'active le fichier depuis Excel, il n'y a pas de demande de confirmation, le lien ne doit pas se faire.