Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Exécuter macro d'un autre classeur ouvert

9 réponses
Avatar
eredrobal
Bonjour à toutes et à tous,
J'ai un fichier ouvert et de ce fichier je souhaite exécuter une macro qui
est dans un autre fichier ouvert. (Excel2003 - SE: XP)
J'ai trouvé :
Sub essai()
Run ("Nomclasseur.xls!Module1.NomMacro")
End sub
Mais cela ne fonctionne pas. "Erreur d'exécution 1004 : Impossible de
trouver la macro".
Par avance merci de votre aide.

9 réponses

Avatar
AV
<Sub essai()
<Run ("Nomclasseur.xls!Module1.NomMacro")
<End sub

Au niveau de la syntaxe, il n'y a pas de problème !
A vérifier :
* Le nom du classeur
* Le nom du module
* Le nom de la macro

AV
Avatar
anonymousA
Bonjour,

il n'y a à prori aucune raison pour que ca ne fonctionne pas. As tu
bien vérifié les orthographes et la désignation du module? par
ailleurs, si NomMacro est une procédure publique dont le nom est
unique dans ton fichier Nomclasseur.xls, il n'est pas utile de
désigner le module qui l'abrite ( même si ca peut-être une bonne
précaution)


A+

eredrobal wrote:
Bonjour à toutes et à tous,
J'ai un fichier ouvert et de ce fichier je souhaite exécuter une macro qui
est dans un autre fichier ouvert. (Excel2003 - SE: XP)
J'ai trouvé :
Sub essai()
Run ("Nomclasseur.xls!Module1.NomMacro")
End sub
Mais cela ne fonctionne pas. "Erreur d'exécution 1004 : Impossible de
trouver la macro".
Par avance merci de votre aide.


Avatar
eredrobal
Merci pour votre réactivité!!
Pour répondre aussi à AV:
J'ai tout vérifié et re-vérifié. Tout est OK.
J'ai supprimé "Module1" et cela ne change rien.
La macro est unique dans les 2 fichiers. Je ne comprends pas.
Si vous avez d'autres pistes...
Encore merci


Bonjour,

il n'y a à prori aucune raison pour que ca ne fonctionne pas. As tu
bien vérifié les orthographes et la désignation du module? par
ailleurs, si NomMacro est une procédure publique dont le nom est
unique dans ton fichier Nomclasseur.xls, il n'est pas utile de
désigner le module qui l'abrite ( même si ca peut-être une bonne
précaution)


A+

eredrobal wrote:
Bonjour à toutes et à tous,
J'ai un fichier ouvert et de ce fichier je souhaite exécuter une macro qui
est dans un autre fichier ouvert. (Excel2003 - SE: XP)
J'ai trouvé :
Sub essai()
Run ("Nomclasseur.xls!Module1.NomMacro")
End sub
Mais cela ne fonctionne pas. "Erreur d'exécution 1004 : Impossible de
trouver la macro".
Par avance merci de votre aide.






Avatar
michdenis
Pour une vraie réponse, il y a ceci :

Exécuter une macro d'un autre classeur:

A )
Nom de la macro : "test1"
Si ton classeur est fermé et que la macro appelée se retrouve dans un module standard :
Application.Run "'C:Mes documentsAnswer.xls'!test1"

Même chose mais si le classeur est déjà ouvert :
Application.Run "Answer.xls!test1"

B ) Si le nom de ton classeur contient des espaces :

L'utilisation des apostrophes "'" permet d'utiliser
un nom de classeur contenant des espaces , sans
ces dernières, point de salut.
Dim LaMacro As String
LaMacro = "'" & ThisWorkbook.Name & "'!test1"
Application.Run LaMacro

C) Si la macro appelée est dans un module feuille du classeur au lieu d'être dans un module Standard
:

Dans la ligne de commande, tu dois insérer le nom de l'objet "Feuille" que tu retrouves dans la
fenêtre VBE (visual basic editor).
Dans la fenêtre de gauche de ton projet, la liste des feuilles est affichée dans ce format :
"toto"("Feuil4")
toto = Nom de l'onglet de la feuille
Feuil4 = Propriété Name de l'objet Feuille (worksheet)
Dans la commande suiivante, tu dois utiliser le nom de la feuille et non de l'onglet de la feuille

Si le fichier est ouvert :
Application.Run "modele.xls!Feuil4.test1"

Si le fichier est fermé :
Application.Run "'C:Mes documentsAnswer.xls'!Feuil4.test1"
Avatar
eredrobal
C'était la soluce B. J'ai des espaces dans mon nom de classeur.
Cela fonctionne bien maintenant et débloque une situation cruciale.
Avec tous mes remerciements pour cette réponse longue, instructive et d'une
qualité impeccable.
Et merci quand même aux autres personnes qui ont pris la peine de se pencher
sur mon petit souci.
Peut-être que ta réponse leur apportera aussi une pierre à leur édifice.
Eredrobal


Pour une vraie réponse, il y a ceci :

Exécuter une macro d'un autre classeur:

A )
Nom de la macro : "test1"
Si ton classeur est fermé et que la macro appelée se retrouve dans un module standard :
Application.Run "'C:Mes documentsAnswer.xls'!test1"

Même chose mais si le classeur est déjà ouvert :
Application.Run "Answer.xls!test1"

B ) Si le nom de ton classeur contient des espaces :

L'utilisation des apostrophes "'" permet d'utiliser
un nom de classeur contenant des espaces , sans
ces dernières, point de salut.
Dim LaMacro As String
LaMacro = "'" & ThisWorkbook.Name & "'!test1"
Application.Run LaMacro

C) Si la macro appelée est dans un module feuille du classeur au lieu d'être dans un module Standard
:

Dans la ligne de commande, tu dois insérer le nom de l'objet "Feuille" que tu retrouves dans la
fenêtre VBE (visual basic editor).
Dans la fenêtre de gauche de ton projet, la liste des feuilles est affichée dans ce format :
"toto"("Feuil4")
toto = Nom de l'onglet de la feuille
Feuil4 = Propriété Name de l'objet Feuille (worksheet)
Dans la commande suiivante, tu dois utiliser le nom de la feuille et non de l'onglet de la feuille

Si le fichier est ouvert :
Application.Run "modele.xls!Feuil4.test1"

Si le fichier est fermé :
Application.Run "'C:Mes documentsAnswer.xls'!Feuil4.test1"








Avatar
Francois L
Pour une vraie réponse, il y a ceci :



Bonjour michdenis,

De retour ?

--
François L

Avatar
michdenis
| De retour ?

Non, non, c'était seulement pour tétiller Av qui semblait
à cours de suggestions sur le sujet du demandeur...

;-))
Avatar
michdenis
.... TITILLER ;-)))

"michdenis" a écrit dans le message de news:
%

| De retour ?

Non, non, c'était seulement pour tétiller Av qui semblait
à cours de suggestions sur le sujet du demandeur...

;-))
Avatar
Francois L
.... TITILLER ;-)))

"michdenis" a écrit dans le message de news:
%

| De retour ?

Non, non, c'était seulement pour tétiller Av qui semblait
à cours de suggestions sur le sujet du demandeur...

;-))

Re,


Ah bon... c'est sur qu'il en besoin d'être ti(e)tiller.

;-))

--
François L