Bonjour,
Je souhaiterai ouvrir un classeur excel à partir d'une macro d'un autre classeur excel. J'ai juste une petite requete, je ne veux pas que les programmes VBA et Macros s'exécutent à l'ouverture !!!
Merci d'avance de votre aide.![]()
Bonjour,
Je souhaiterai ouvrir un classeur excel à partir d'une macro d'un autre classeur excel. J'ai juste une petite requete, je ne veux pas que les programmes VBA et Macros s'exécutent à l'ouverture !!!
Merci d'avance de votre aide.![]()
Tu placeces cette ligne en tête de la macro Workbook_Open dans ThisWorkbook
A+
Code : Sélectionner tout - Visualiser dans une fenêtre à part Application.EnableEvents = False
Merci pour l'info, mais en fait c'est pas tout à fait ce que je veux faire !
Je vais m'expliquer plus clairement.
J'ai créé une macor dans un classeur, qui ouvre des classeurs (dans une boucle) afin d'effectuer un traitement sur les données de chacun d'eux.
les classeurs que je souhaite ouvrir sont nombreux. J'aimerai donc éviter d'aller modifier le code de chacun d'eux afin de pouvoir les ouvrir par programme. De plus cette ouverture sans tenir compte des macros devra etre juste temporaire pendant mon traitement. Un peu comme quand on choisi "désactiver les macros' à l'ouverture d'un classeur.
Est-ce possible ?
Bonjour
En complément à la réponse de Ouskel'n'or.
Il y a deux manières de lancer une macro au démarrage d'un classeur.
1. l'évènement sur ouverture du classeur, contrôlé par du code placé dans le module appelé habituellement ThisWorkbook
2. Une macro auto_open placée dans un module standard
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Private Sub Workbook_Open() MsgBox "Bonjour Thisworkbook" End Sub
Le code qui gère l'évènement d'ouverture du classeur est toujours exécuté, sauf désactivation des macros...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Sub auto_open() MsgBox "Bonjour auto_open" End Sub
La macro Auto_Open n'est pas exécutée lorsque le classeur qui la contient est ouvert par VBA...
[EDIT] xc78370:
Ta réponse a croisé mon message...
Mais si tu fais ce que Ouskel'n'or te dit, tu résous ton problème. Place le code
dans le classeur appelant avant la ligne de code qui ouvre le classeur appelé[/B]
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2application.enableevents = false
[/EDIT]
En fait j'ai un 'Stop' dans l'événement Workbook_Open de chacun de mes classeurs à ouvrir. Cela me gene car je souhaite effectuer mon traitement de maniere autonome. Cependant ce 'Stop' est utile dans le fonctionnement 'normal' du classeur. Je ne peux pas l'enlever (de plus j'ai presque 200 classeurs à traiter, je me vois mal aller dans le code pour supprimer le 'STOP' 200 fois, effectuer mon traitement et remettre 200 fois le 'STOP'...)
La désactivation des macros dont tu parles est bien : Application.EnableEvents = FalseLe code qui gère l'évènement d'ouverture du classeur est toujours exécuté, sauf désactivation des macros...
Si c'est le cas, y a t-il moyen (ca me paraitrait bizarre) de désactiver les macro d'un classeur dsans ouvrir ce classeur ???![]()
Désolé...
Ma réponse à ta réponse à croisée la modif de ta réponse à ma premiere réponse...
Je ne l'avais aps compris comme ca ! Je vais donc tenter ce qu'Ouskel'n'or a dit.
Merci bien !
Non, la désactivation dont je parle dans ce cas-là dépend du niveau de sécurité.
Relis ce que Ouskel'n'or et moi te disons. et essaie la solution proposée!
Dans un classeur, tu as un code qui ouvre un autre classeur. Juste avant cette ligne de code, donc dans le classeur appelant, tu désactives la gestion des évènements... et donc, l'évènement Open du classeur que tu vas ouvrir n'est plus géré...
Ne pas oublier la dernière ligne du code que je te donne, c'est important...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 application.enableevents = false workbooks.open "monclasseur.xls" ... application.enableevents = true
Essaie et tu verras que le stop du classeur ouvert par la macro n'est plus actif...
Nous avons eu un peu de mal à communiquer, mais finalement, nous y sommes arrivés...
J'ai donc appliqué le 'EnableEvents' avec succès, mon probleme est résolu !
Merci beaucoup à vous deux !
PS : Moi aussi j'ai lu Eckhart Tolle et son fameux "Le pouvoir du moment présent" et je l'ai trouvé assez réaliste sur beaucoup de points !!!
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager