Excel - Execution automatique des macros
Sonicyann
-
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je suis novice sur VBA, je gratouille grâce aux forums et là, je suis coincé.
J'ai un outil Excel (pour info, je suis sur Excel 2003) sur lequel, dans chaque onglet, j'ai groupé des lignes et des colonnes pour le rendre "digeste" à ses utilisateurs.
Dans tous les onglets, j'ai inséré une macro afin de pouvoir ployer et déployer ces groupes, malgré la protection de la feuille.
Maintenant je veux que toutes les macros se lancent au démarrage. Donc j'ai mis le code suivant sur "ThisWorkbook", tout bien comme tout le monde l'a écrit partout ou j'ai chiné.
Seulement voilà, ça ne fonctionne pas. Il me donne une "Erreur d'execution "424" : Objet Requis".
Quelqu'un aurait-il l'amabilité de m'aider à comprendre et à corriger cette mystérieuse erreur, s'il vous plait ?
Je suis novice sur VBA, je gratouille grâce aux forums et là, je suis coincé.
J'ai un outil Excel (pour info, je suis sur Excel 2003) sur lequel, dans chaque onglet, j'ai groupé des lignes et des colonnes pour le rendre "digeste" à ses utilisateurs.
Dans tous les onglets, j'ai inséré une macro afin de pouvoir ployer et déployer ces groupes, malgré la protection de la feuille.
Maintenant je veux que toutes les macros se lancent au démarrage. Donc j'ai mis le code suivant sur "ThisWorkbook", tout bien comme tout le monde l'a écrit partout ou j'ai chiné.
Private Sub Workbook_Open() Call Feuil10.Verrcls Call Feuil11.Verrcls Call Feuil12.Verrcls Call Feuil13.Verrcls Call Feuil14.Verrcls Call Feuil15.Verrcls Call Feuil16.Verrcls Call Feuil17.Verrcls Call Feuil18.Verrcls Call Feuil19.Verrcls Call Feuil20.Verrcls Call Feuil21.Verrcls Call Feuil22.Verrcls Call Feuil23.Verrcls Call Feuil24.Verrcls Call Feuil25.Verrcls Call Feuil26.Verrcls Call Feuil27.Verrcls Call Feuil28.Verrcls Call Feuil29.Verrcls Call Feuil2.Verrcls Call Feuil30.Verrcls Call Feuil31.Verrcls Call Feuil32.Verrcls Call Feuil33.Verrcls Call Feuil34.Verrcls Call Feuil36.Verrcls Call Feuil3.Verrcls Call Feuil40.Verrcls Call Feuil41.Verrcls Call Feuil42.Verrcls Call Feuil44.Verrcls Call Feuil45.Verrcls Call Feuil46.Verrcls Call Feuil47.Verrcls Call Feuil48.Verrcls Call Feuil49.Verrcls Call Feuil4.Verrcls Call Feuil5.Verrcls Call Feuil51.Verrcls Call Feuil52.Verrcls Call Feuil53.Verrcls Call Feuil6.Verrcls Call Feuil7.Verrcls Call Feuil8.Verrcls Call Feuil9.Verrcls End Sub
Seulement voilà, ça ne fonctionne pas. Il me donne une "Erreur d'execution "424" : Objet Requis".
Quelqu'un aurait-il l'amabilité de m'aider à comprendre et à corriger cette mystérieuse erreur, s'il vous plait ?
A voir également:
- Excel - Execution automatique des macros
- Liste déroulante excel - Guide
- Réponse automatique thunderbird - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Déplacer colonne excel - Guide
9 réponses
Bonjour
verrcls ???
verrcls ???
linkcr15
Messages postés
423
Statut
Membre
12
verrcls : Verouille Cellules j'imagine, ce doit être une fonction écrite dans chacune de ces pages (pas très pratique je te l'accorde)
Bonjour,
S'il n'est pas trop lourd (sinon allège-le à 3-4 feuilles), dépose-le sur cjoint.com et colle ici le lien fourni.
On y verra plus clair et j'ai l'impression que ton code peut-être sérieusement optimisé.
eric
S'il n'est pas trop lourd (sinon allège-le à 3-4 feuilles), dépose-le sur cjoint.com et colle ici le lien fourni.
On y verra plus clair et j'ai l'impression que ton code peut-être sérieusement optimisé.
eric
Tu es sur que ton code fonctionne avec les feuilles protégées?
Car j'ai le même problème mais cela vient bien de la protection des feuilles...
Car j'ai le même problème mais cela vient bien de la protection des feuilles...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
En fait les noms ont été mis par défaut et je n'ai pas pris la peine de les modifier. Du coup, "verrcls" nomme la macro de verrouillage/déverrouillage des cellules qui est strictement la même dans tous les onglets, et qui, verrification faite, bien entendu, fonctionne correctement.
@ linckr15 : Oui, la macro a été copiée dans tous les onglets inclus.
J'ai toutefois repris, ce matin, et ai trouvé un "Call" vers une macro qui n'existait pas. Je l'ai enlevé, ce qui a résolu l'erreur 424. Toujours ça de résolu ! Toutefois je n'arrive pas à rendre ma macro d'activation... active.
Voici mon process :
- dans VBA, j'ouvre la fenêtre du code de "ThisWorbook", je réinitialise, j'execute et j'enregistre;
- je ferme VBA
- dans mon fichier, je verrouille un à un mes onglets
- j'enregistre mon fichier puis le ferme.
- je l'ouvre et mes macros de déploiement ne fonctionnent pas...
@ eriic : Je suis désolé, la politique de sécurité de ma boîte m'empêche d'accéder à cjoint.com. Je ne peux pas te donner une version light de mon fichier (le bébé entier pèse ses 37 Mo quand même...)
J'ai toutefois repris, ce matin, et ai trouvé un "Call" vers une macro qui n'existait pas. Je l'ai enlevé, ce qui a résolu l'erreur 424. Toujours ça de résolu ! Toutefois je n'arrive pas à rendre ma macro d'activation... active.
Voici mon process :
- dans VBA, j'ouvre la fenêtre du code de "ThisWorbook", je réinitialise, j'execute et j'enregistre;
- je ferme VBA
- dans mon fichier, je verrouille un à un mes onglets
- j'enregistre mon fichier puis le ferme.
- je l'ouvre et mes macros de déploiement ne fonctionnent pas...
@ eriic : Je suis désolé, la politique de sécurité de ma boîte m'empêche d'accéder à cjoint.com. Je ne peux pas te donner une version light de mon fichier (le bébé entier pèse ses 37 Mo quand même...)
Et quand tu déverrouilles tes onglets et que tu relances ton programme, est-ce que les macros fonctionnent?
Bonjour,
Ajoute Stop en première ligne après Private Sub Workbook_Open()
Ensuite tu fais en pas à pas avec F8 pour voir où ça plante.
Si tu veux lancer un sub appelé sans faire le pas à pas dessus tu fais shift+F8 sur cette ligne.
Commence par ça pour determiner la feuille où ça plante. Ensuite sur le traitement de cette feuille tu fais un pas à pas etc.
Ainsi tu sauras si la macro ne se lance réellement pas, ou si elle se lance et plante sur une feuille sans message d'erreur.
eric
Ajoute Stop en première ligne après Private Sub Workbook_Open()
Ensuite tu fais en pas à pas avec F8 pour voir où ça plante.
Si tu veux lancer un sub appelé sans faire le pas à pas dessus tu fais shift+F8 sur cette ligne.
Commence par ça pour determiner la feuille où ça plante. Ensuite sur le traitement de cette feuille tu fais un pas à pas etc.
Ainsi tu sauras si la macro ne se lance réellement pas, ou si elle se lance et plante sur une feuille sans message d'erreur.
eric
Désolé, il refuse le "Stop".
En revanche, j'ai fais mon pas à pas, et aucune erreur n'est apparue nulle part.
Est-ce que cela ne viendrait pas du nombre de macros que je lui demande de lancer en même temps, qui serait trop important pour lui ?
Je suis vraiement démuni là. Je ne sais plus quoi faire pour le faire fonctionner, et la version finale doit être lancée en production vendredi matin...
J'hésite à passer en mode panique !!!
En revanche, j'ai fais mon pas à pas, et aucune erreur n'est apparue nulle part.
Est-ce que cela ne viendrait pas du nombre de macros que je lui demande de lancer en même temps, qui serait trop important pour lui ?
Je suis vraiement démuni là. Je ne sais plus quoi faire pour le faire fonctionner, et la version finale doit être lancée en production vendredi matin...
J'hésite à passer en mode panique !!!
Il n'a pas à refuser le stop, qu'appelles-tu refuser ?
Tu le met en 1ère ligne du code Workbook_Open() , tu sauves et fermes ton fichier.
Tu le rouvres et là tu dois être en pas à pas pour voir ce qui s'exécute.
Si rien ne se passe c'est que le Workbook_Open() ne s'exécute pas, comme si tu avais refusé l'exécution des macros. Dans ce cas va voir du coté niveau de Sécurité des macros
Est-ce que cela ne viendrait pas du nombre de macros que je lui demande de lancer en même temps, qui serait trop important pour lui ?
Le nombre ne le gène pas, il les exécute les unes derrière les autres. Maintenant il faut lui laisser le temps de tout faire.
Pour savoir tout ça fais ce que je te dis au-dessus.
eric
Tu le met en 1ère ligne du code Workbook_Open() , tu sauves et fermes ton fichier.
Tu le rouvres et là tu dois être en pas à pas pour voir ce qui s'exécute.
Si rien ne se passe c'est que le Workbook_Open() ne s'exécute pas, comme si tu avais refusé l'exécution des macros. Dans ce cas va voir du coté niveau de Sécurité des macros
Est-ce que cela ne viendrait pas du nombre de macros que je lui demande de lancer en même temps, qui serait trop important pour lui ?
Le nombre ne le gène pas, il les exécute les unes derrière les autres. Maintenant il faut lui laisser le temps de tout faire.
Pour savoir tout ça fais ce que je te dis au-dessus.
eric
Alors j'ai du mal comprendre ta proposition. Tu me demandes d'écrire ma 1e ligne comme ça ?
"Private Sub Workbook_Open() Stop"
Parce-que quand je fais ça, il me met le message d'erreur suivant : "Erreur de compilation - Attendu : Fin d'instruction", et je ne peux rien faire d'autre que de l'enlever...
Quand je disais que j'étais une Quiche en VBA !...
"Private Sub Workbook_Open() Stop"
Parce-que quand je fais ça, il me met le message d'erreur suivant : "Erreur de compilation - Attendu : Fin d'instruction", et je ne peux rien faire d'autre que de l'enlever...
Quand je disais que j'étais une Quiche en VBA !...