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.
<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
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.
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.
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
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.
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.
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
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"
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"
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
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"
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"
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"