Excel - Execution automatique des macros

Fermé
Sonicyann - 29 mai 2012 à 16:54
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 30 mai 2012 à 14:36
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é.

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:

9 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
29 mai 2012 à 17:28
Bonjour

verrcls ???
1
linkcr15 Messages postés 362 Date d'inscription mercredi 7 janvier 2009 Statut Membre Dernière intervention 31 mars 2016 12
29 mai 2012 à 17:29
verrcls : Verouille Cellules j'imagine, ce doit être une fonction écrite dans chacune de ces pages (pas très pratique je te l'accorde)
0
linkcr15 Messages postés 362 Date d'inscription mercredi 7 janvier 2009 Statut Membre Dernière intervention 31 mars 2016 12
29 mai 2012 à 17:36
Es-tu sur qu'elle se situe dans TOUS les onglets où tu l'appelles?
1
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 248
29 mai 2012 à 18:29
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
1
linkcr15 Messages postés 362 Date d'inscription mercredi 7 janvier 2009 Statut Membre Dernière intervention 31 mars 2016 12
29 mai 2012 à 16:56
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...
0

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.
0
@ 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...)
0
linkcr15 Messages postés 362 Date d'inscription mercredi 7 janvier 2009 Statut Membre Dernière intervention 31 mars 2016 12
30 mai 2012 à 11:24
Et quand tu déverrouilles tes onglets et que tu relances ton programme, est-ce que les macros fonctionnent?
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 248
30 mai 2012 à 11:55
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
0
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 !!!
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 248
Modifié par eriiic le 30/05/2012 à 14:28
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
0
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 !...
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 248
Modifié par eriiic le 30/05/2012 à 14:37
non, sur la ligne suivante :
Private Sub Workbook_Open()
Stop
'reste du code
....
end sub
0