web-dev-qa-db-fra.com

Procédure trop grande

J'ai reçu ce message d'erreur -Procedure too large - dans VBA. Quelle est la raison et le moyen de sortir de cette erreur?

14
Sourav

Vous avez probablement une ou plusieurs procédures/fonctions gigantesques et je pense que VBA a une limite de 64 Ko ou quelque chose par procédure.

Vous corrigez le problème en divisant cette procédure en plusieurs procédures pouvant être appelées par la même procédure.

Donc au lieu d'avoir:

 Sub GiantProcedure()
      ... ' lots and lots of code
 End Sub

Vous auriez quelque chose comme:

 Sub GiantProcedure()
      ... ' a little bit of common code
      Proc1()
      Proc2()
      Proc3()

 End Sub

 Sub Proc1()
      ... ' quite a bit of code
 End Sub

 Sub Proc2()
      ... ' quite a bit of code
 End Sub

 Sub Proc3()
      ... ' quite a bit of code
 End Sub
17
Hans Olsson

Votre procédure compiled ne peut pas dépasser 64 Ko. Vous devriez le diviser en différentes sous-routines.

http://msdn.Microsoft.com/en-us/library/Aa264541

5
Wix

Ce message d'erreur peut s'afficher si la macro a été créée à l'aide de la version 64 bits d'Office. Voir l'article suivant pour plus de détails et une solution de contournement:

Message d'erreur «Erreur de compilation: procédure trop volumineuse» lorsque vous essayez d'exécuter une macro VBA dans une version 32 bits d'un programme Office 2010

1
Dirk Vollmar

L'idée de GiantProcedure ne fonctionnait pas pour moi avec Microsoft PowerPoint 2013. J'ai ensuite ajouté un "appel" avant chaque "proc". Comme ça:

Sub GiantProcedure()

  Call Proc1()
  Call Proc2()
  Call Proc3()

End Sub

Maintenant ça marche.

0
Siamak