Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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:

danielco

XLDnaute Accro
C'était justement la question. ceci dit, Power Query sait lire des cellules sans que le classeur soit ouvert, par exemple...

Daniel
 

mbmb

XLDnaute Nouveau
N'as-tu pas la possibilité de mettre tes 2 fichiers à disposition ?
 

job75

XLDnaute Barbatruc
Bonsoir,
N'as-tu pas la possibilité de mettre tes 2 fichiers à disposition ?
oui bien suri
Cela aurait dû être fait dès le début non ?

Dans test2.xlsm la macro entraîne le suicide du fichier !

Donc il suffisait de mettre dans test1.xlsm la macro :
VB:
Private Sub Workbook_Open()
On Error Resume Next
Workbooks("test2.xlsm").Close False 'ferme le fichier s'il est ouvert
Kill ThisWorkbook.Path & "\test2.xlsm"
End Sub
A+
 

pat66

XLDnaute Impliqué
Bonjour le fil
Bonjour Job75, bonjour Danreb

je vous remercie beaucoup et c'est vrai qu'un fichier exemple est beaucoup plus explicite pour vous.
En tout cas, Les 2 solutions fonctionnent parfaitement

J'ai encore 2 questions qui me turlupine:
1- Comment ajouter un second fichier à éliminer, exemple test2 et test3
2- dans le cas ou le fichier à éliminer n'est pas dans le même répertoire "ThisWorkbook.Path" peut on demander à la macro de le chercher sur C:

merci
 

job75

XLDnaute Barbatruc
Bonjour pat66, le forum,
VB:
Private Sub Workbook_Open()
On Error Resume Next
Workbooks("test2.xlsm").Close False 'ferme le fichier s'il est ouvert
Workbooks("test3.xlsm").Close False 'ferme le fichier s'il est ouvert
Kill ThisWorkbook.Path & "\test2.xlsm"
Kill ThisWorkbook.Path & "\test3.xlsm"
Kill "C:\test2.xlsm" 'sur disque C
Kill "C:\test3.xlsm" 'sur disque C
End Sub
A+
 

pat66

XLDnaute Impliqué
Job75,
cela fonctionne si test2 et test3 sont dans le même dossier que test1, mais pas si test2 et test3 sont sur C: ou sur le bureau

peut être une idée pour les supprimer ou qu'ils soient sur le disque dur ?
 
Dernière édition:

job75

XLDnaute Barbatruc
Le code du post #23 supprime les fichiers s'il sont sur le disque C mais pas dans un de ses dossiers.

Pour les supprimer de tous les dossiers et sous-dossiers de C faites une recherche sur le mot récursivité, le problème a déjà été traité.
 

pat66

XLDnaute Impliqué
Je vous assure et je viens encore de tester en mettant les 2 classeurs sur C: mais ils ne disparaissent pas
Kill "C:\test2.xlsm" 'sur disque C
Kill "C:\test3.xlsm" 'sur disque C

ok je vais voir pour récursivité

merci
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…