XL 2019 Déclencher une macro d'un classeur fermé

pat66

XLDnaute Impliqué
Bonjour Le forum,

Dans le même dossier, j'ai 2 classeurs test1.xlsm et test2.xlsm
Mon problème :
Comment peut on activer une macro située dans un module standard de test2 en ouvrant test1

j'ai bien essayé dans test1 avec :
Private Sub Workbook_Open()
Application.Run ThisWorkbook.Path & "\test2.xlsm'mamacro"
end sub

mais cela donne "erreur d'execution 1004", je précise que le classeur, les feuilles et le vba sont protégés

pourriez vous m'aidez svp

merci et belle journée à toutes et à tous
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Il y a aussi une apostrophe inutile au début de la partie fixe.
Ou alors c'est peut être tout le chemin et nom de fichier, voir tout, qui doit à la rigueur être encadré d'apostrophes, mais il faut en tout cas un point d'exclamation devant le nom de la macro.
Le plus sûr serait de prévoir un bouton de formulaire auquel cette macro serait affectée et d'employer exactement la valeur de sa propriété OnAction quand le classeur est fermé.
 
Dernière édition:

pat66

XLDnaute Impliqué
si j'enlève les guillemets juste avant c'est pire
j'ai testé avec Workbooks.Open Filename:=ThisWorkbook.Path & "\test2.xlsm",le classeur s'ouvre bien, mais j'ai besoin d'activer une macro qui supprime l'ancien classeur à l'ouverture du test1
 

Dranreb

XLDnaute Barbatruc
Prenez la propriété OnAction d'un Shape auquel vous aurez affecté la macro, comme ça vous ne pourrez pas vous tromper dans ce qu'il faut écrire pour le Application.Run
Fermer d'abord le classeur qui contient la macro car je crois que son chemin en est enlevé quand il est ouvert. À moins d'en écrire deux versions, selon qu'il est ouvert ou non.
 

mbmb

XLDnaute Nouveau
Pour résumer, il n'est pas possible d'exécuter la macro, le classeur étant fermé. Il faut l'ouvrir, exécuter la macro et refermer le classeur.

Daniel
Je ne vois pas comment la macro pourrait être ouverte, sans que le fichier soit lui même ouvert ... et que la macro soit alors interprétée par Excel ... En tous cas ... c'est la manière de faire que j'utilise ... il y a peut-être mieux ... mais cela fonctionne et est transparent pour l'utilisateur ... (l'appel tel qu'indiqué ouvre le classeur et exécute la macro + la commande de fermeture en fin de macro)
(dans mon cas, chacun des 100 utilisateurs a son propre fichier excel avec ses propres données ... et quand ils cliquent sur le bouton, ils appellent tous la même macro ... si je dois faire une modif sur la macro, je ne la fait que sur 1 fichier ... et pas sur les 100. S'ils sont susceptibles de cliquer en même temps, il faut activer le partage de fichier sur le fichier de la macro)
 

pat66

XLDnaute Impliqué
toujours pas = erreur 1004

pensez vous que c'est correctement écris notamment ThisWorkbook.Path &
Application.Run ThisWorkbook.Path & "\test2.xlsm!mamacro"

cette macro fonctionne bien, y pourrais je ajouter l'instruction pour activer la macro ?
Workbooks.Open Filename:=ThisWorkbook.Path & "\test2.xlsm"

merci
 
Dernière édition:

Discussions similaires