Lancer une macro d'un autre classeur excel [Résolu/Fermé]

Signaler
-
 Soignisec -
Bonjour,

Je vous écris car j'ai un petit soucis de programmation :
j'ai un classeur 1 qui a une macro s'appelant test dans le module 1
et dans le classeur 2 j'aimerai faire une macro lancant la macro test du classeur 1

j'ai essayé de faire ça :

Sub OuvreSiPasOuvert()
Dim Worbk As Workbook
On Error Resume Next
Set Worbk = Workbooks("Macro tps de cycle.xls")
On Error GoTo 0
If Worbk Is Nothing Then Workbooks.Open "R:\DH_SCE\Toutes SCE\Macros\Macro tps de cycle.xls" _
Else: Set Worbk = Nothing
Call Workbooks("Macro tps de cycle.xls").Module1.test

Mais... ça ne marche pas...

Merci de m'aider


A voir également:

3 réponses

Problème résolu : il fallait pas oublié les '
Application.Run ("'Macro tps de cycle.xls'!test")
voila!!!
18
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
16491
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
21 juillet 2021
3 199
Bien vu pour les guillemets!
Merci de ton aide dans tous les cas!
PS : t'as du les mettre dans ton fichier ms je n'arrivais pas à y accéder!^^
Merci !
Avec des variables, ça donne :
Application.Run ("'" & Fichier.Name & "'!test")

avec initialement :
Dim wb, Fichier As Workbook
For Each wb In Workbooks
If InStr(wb.Name, "Macro tps de cycle") = 1 Then
Set Fichier = wb
End If
Next
Messages postés
16491
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
21 juillet 2021
3 199
bonjour

de mémoire
Application.Run ("Macro tps de cycle.xls!test")


edit: je viens d'essayer sur une maquette: c'est OK

Michel
En mettant cette ligne à la place de mon call il me met :
erreur 1004
impossible d'éxécuter la macro temps de cycle!test, il est possible qu'elle ne siot pas disponible dans ce classeur ou que toutes les macros soient désactivées

j'ai bien activé mes macros, et je sas que cette macro n'est pas dans mon classeur 2 vu qu'elle est dans le classeur 1 (macro tps de cycle)
Messages postés
16491
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
21 juillet 2021
3 199
Puisque tu me crois pas quand je te dis que j'ai testé avec succès
voici une maquette
https://www.cjoint.com/?3GfnRNSo8bP

test est le nom de la macro et toi tu me parles de:
la macro temps de cycle!test
???

d'autre part, d'après ton code, tu auras toujours appel de la macro test quelque soit l'état de worbk; je te laisse rechercher...
tu as fait un set worbk oK, très bien
alors pourquoi ne pas l'utiliser dans l'instruction d'appel de la macro?
Dsl, je mettais pas ce que tu dis en doute... juste j'ai mis la ligne de code et chez moi cela n'a pas marché, je ne commence qu'aujourd'hui à programmer donc j'ai sans doute pas vu quelque chose
concernant "macro temps de cyle" c'est le nom de mon classeur...c'est ptetre de la que vient la confusion, et la macro à l'intérieur s'appelle bien test.
Merci de votre aide
Messages postés
16491
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
21 juillet 2021
3 199
envoie un extrait de ton classeur macro temps de cycle, je vais jeter un oeil

en attendant essaies ceci (pas sûr de moi)
Dim Worbk As Workbook  
Set Worbk = Workbooks("Macro tps de cycle.xls")  
On Error GoTo erreur  
     Workbooks.Open "R:\DH_SCE\Toutes SCE\Macros\Macro tps de cycle.xls"  
     Application.Run ("Macro tps de cycle.xls!test") 
     exit sub
erreur:  
MsgBox "le classeur " & Worbk & "est inexistant dans le dossier indiqué", vbCritical  
  


pour joindre une pièce
mettre le classeur sans données confidentielles en pièce jointe (format XL97-2003) sur
http://cijoint.fr/
et faire un clic droit sur le lien proposé puis "copier l'adresse du lien" et coller dans le message de réponse