Exécuter macro d'un autre classeur ouvert

Le
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.
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
AV
Le #4070491
<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
anonymousA
Le #4070471
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.


eredrobal
Le #4070401
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.






michdenis
Le #4070171
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"
eredrobal
Le #4070151
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"








Francois L
Le #4069291
Pour une vraie réponse, il y a ceci :



Bonjour michdenis,

De retour ?

--
François L

michdenis
Le #4068701
| De retour ?

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

;-))
michdenis
Le #4068641
.... TITILLER ;-)))

"michdenis" %

| De retour ?

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

;-))
Francois L
Le #4068301
.... TITILLER ;-)))

"michdenis" %

| 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

Publicité
Poster une réponse
Anonyme