Exécuter une macro word depuis Excel

Bonjour le Forum,

J'ai adapté un code trouvé sur internet pour exécuter une macro Word depuis Excel, je l'ai adapté pour sélectionner le fichier où l'on veut exécuter la macro "Macro1".

Mais en lançant la macro, j'ai une erreur "Nous ne pouvons pas exécuter la macro spécifiée".

Voici le code :

Sub executer_macroWord()
Dim WordApp As Object
Dim Fichier As String
'Fichier = Application.GetOpenFilename("Fichier Word, *.docx; *.docm")

    Set WordApp = GetObject(, "Word.Application")
    WordApp.Run "'Fichier'!NewMacros.Macro1"

End Sub

Pouvez-vous me dire où je me suis planté ?

Merci d'avance.

Bonjour,

Dans la logique avec cette structure :

image

Et ce code :

Sub executer_macroWord()
Dim WordApp As Object
Dim Fichier As String
    Set WordApp = CreateObject("Word.Application")
    WordApp.Visible = True
    Fichier = Application.GetOpenFilename("Fichier Word, *.docx; *.docm")
    Fichier = WordApp.Documents.Open(Fichier)
    WordApp.Run "NewMacros.Macro1"
End Sub

Alors j'ai bien la macro qui s'execute avec un message box.

Cdlt,

Salut Ergotamine,

Merci beaucoup ça fonctionne mais que quand le document Word est fermé de base, mais quand il est déjà ouvert ça m'ouvre le document en copie.

Il faut modifier quoi dans le code du coup quand le document est déjà ouvert ?

Merci d'avance.

Cdt,

Muzan93

Bonjour,

Testé et fonctionnel malgré que je ne l'ai pas optimisé :

Sub executer_macroWord()
Dim WordApp As Object
Dim Fichier As String
Fichier = Application.GetOpenFilename("Fichier Word, *.docx; *.docm")
On Error Resume Next
Set WordApp = GetObject(, "Word.Application")
If WordApp Is Nothing Then
    Set WordApp = CreateObject("Word.Application")
    WordApp.Visible = True
End If
If Not FileIsOpen(Fichier) Then
    WordApp.Documents.Open Fichier
End If
WordApp.Run "NewMacros.Macro1"
End Sub

Public Function FileIsOpen(FullFilePath As String) As Boolean
Dim ff As Long
On Error Resume Next
ff = FreeFile()
Open FullFilePath For Input Lock Read As #ff
Close ff
FileIsOpen = (Err.Number <> 0)
On Error GoTo 0
End Function

Cdlt,

Je ne comprends pas cela fonctionne pas chez moi.

Il n'y a rien qui se passe, j'ai essayé avec une macro qui devait afficher une boite de message mais rien ne s'affiche.

Bonjour,

Quand vous dites que rien ne se passe c'est à dire ? Pas de boîte de sélection du dialogue ? Pas d'ouverture de Word dans votre barre des tâches ?

Chez moi l'application WORD s'ouvre en arrière plan et lorsque je clique sur mon document dans la barre des tâches le msgbox apparaît

Ci-contre les codes utilisés :

- Dans un module standard de mon fichier EXCEL :

Sub executer_macroWord()
Dim WordApp As Object
Dim Fichier As String
Fichier = Application.GetOpenFilename("Fichier Word, *.docx; *.docm")
On Error Resume Next
Set WordApp = GetObject(, "Word.Application")
If WordApp Is Nothing Then
    Set WordApp = CreateObject("Word.Application")
    WordApp.Visible = True
End If
If Not FileIsOpen(Fichier) Then
    WordApp.Documents.Open Fichier
End If
WordApp.Run "NewMacros.Macro1"
End Sub

Public Function FileIsOpen(FullFilePath As String) As Boolean
Dim ff As Long
On Error Resume Next
ff = FreeFile()
Open FullFilePath For Input Lock Read As #ff
Close ff
FileIsOpen = (Err.Number <> 0)
On Error GoTo 0
End Function

- Dans un module standard de mon document word nommé NewMacros :

Sub Macro1()
MsgBox "OK"
End Sub

Les fichiers sur lesquels ça ne fonctionne pas seraient les bienvenus.

Cdlt,

Le code que tu m'as filé s'exécute, mais quand je vais sur mon fichier Word, il n'y a aucune boite de dialogue qui s'ouvre, je parle du cas quand le fichier est déjà ouvert.

La macro Word que je souhaite exécuter depuis Excel est similaire à la votre, elle affiche une boite de dialogue qui écrit "Ok".

Sur Word, la macro se nomme bien Macro1 et est présente dans le module NewMacros, de ce côté je pense qu'il n'y a pas de soucis.

Finalement, cela fonctionne parfaitement.

Je passe le sujet en résolu !

Bonne soirée.

Rechercher des sujets similaires à "executer macro word"