Bonjour le forum,
En sachant qu'un module VBA sous Access ne peut pas faire plus de 64 ko, existe-t'il une macro (du code) qui me permettrait de connaitre la taille du module en cours ou le module dont je donnerais le nom ?
Merci d'avance.
bgs
Bonjour le forum,
En sachant qu'un module VBA sous Access ne peut pas faire plus de 64 ko, existe-t'il une macro (du code) qui me permettrait de connaitre la taille du module en cours ou le module dont je donnerais le nom ?
Merci d'avance.
bgs
C'est la première fois que j'entend parler de cette limite de taille d'un module!!?!
Mais bon, ce n'est pas bien grave: il te suffit d'exporter de temps en temps le module que tu développes, et de regarder la taille du fichier ".bas" que tu génères. Et si tu dépasses une certaine limite, découpe le en plusieurs modules. En plus, ça rendra ton code plus clair.
64 ko comme limite : FAUX ! J'en ai un où je mets toutes mes cochonneries à moi et qui fait 105 ko. C'est fait "excepré" pour que personne ne puisse s'y retrouver sauf moi...![]()
Espérant t'avoir grandement aidé![]()
A+
Ouskel'n'or, roi des dodos("du dodo", vu qu'il n'en reste qu'un!!), a parlé!
Hugh, comme on dit chez nous...
![]()
Je parle donc d'un module VBA créé sous Access 2003 (dans un module et non du code dans un formulaire).Envoyé par ouskel'n'or
J'essaierai de trouver l'information sur l'aide de Access 2003 et je vous le montrerai mais ça sera pour demain.
bonne soirée et merci pour ta réponse![]()
bgs
J'ai ACCESS 2002 sur mon poste, et je ne trouve pas mention de cette limitation. Mais si elle est réelle, c'est bon à savoir.
Je n'ai jamais parlé de formulaire, j'ai ça dans un module VBPROJECT et touétou.Je parle donc d'un module VBA créé sous Access 2003 (dans un module et non du code dans un formulaire).
C'est quoi déjà, un formulaire ?![]()
A+
Re-salut,Envoyé par ouskel'n'or
J’ai copié une partie d’un module vers un autre pour qu’il soit trop grand.
Voici le message d’erreur que j’obtiens quand je clique sur F5 :
ERREUR DE COMPILATION : Procédure trop grande
Quand je clique sur aide, voici ce que je peux lire :
Pourrais-tu me dire comment voire la taille d’un module ?Une fois compilé, la taille du code d'une procédure doit être inférieure à 64 Ko. Cause et solution de cette erreur :
• La taille du code de cette procédure dépasse 64 Ko après compilation.
Fractionnez ce code et toute autre grande procédure en plusieurs procédures plus petites.
Pour plus d'informations, sélectionnez l'élément en question et appuyez sur F1 (sous Windows) ou AIDE (sur Macintosh).
Merci
bgs
[quote="beegees"][quote="ouskel'n'or"]La c'est la procédure et non le module qui est trop grand.... Je ne sais pas te dire comment savoir la taille de ta procédure ... mais je suis sur que celle-ci peu-être découpée en plusieurs procédure, ce qui devrai en prime rendre ton code beaucoup plus lissible ... car pour atteindre cette taille ta procédure doit être un véritable fourre-tout
ERREUR DE COMPILATION : Procédure trop grande
bgs
![]()
64ko pour une procédure cela doit bien représenter au moins 640 lignes de codes -
j'aimerais pas à avoir à débogguer pareille usine à gaz -
Sinon, oui, c'est très faisable, notamment en dévelopant un addin dédié à l'interface de développement VBA.
Coucou beegees ! Il y a près de 20 ans que les disques durs existent sur les PC, on est plus obligé de faire du "style nouille" pour gagner de la place...
Quand on n'avait que des disquettes 5'1/4 (360ko) là, on était obligé...
On ne parle pas de "module" mais de SUB ou "procédure".La taille du code de cette procédure dépasse 64 Ko après compilation
Pour voir la taille, mets-la dans un module vide, exporte le module vers le répertoire de ton choix. Ensuite, tu retournes dans le répertoire et tu fais affichage "Détails", là tu auras la taille de ta procédure.
Mais comme dit Bbill, "Coupe-la en tranches".
A+
[quote="bbil"][quote="beegees"]Salut,Envoyé par ouskel'n'or
Merci pour ta réponse.
C'est donc ma procédure qui est trop grande (sorry)
J'ai essayé de la découpé (samedi dernier quand j'ai eu le problème) mais pas moyen car :
Ma procédure lie les données d'une base de données avec DAO (il faudrait donc que si je change de module, je redéclare tout mes variables DAO...) mais là n'est pas le pire, le pire c'est ma boucle for next et la boucle des pages excel (j'ai 4 pages différentes par étudiant).
Je ne pense donc pas que ça soit possible de "trancher" comme dirait Billy ou notre Ami plus bas.
A moin que tu en crois le contraire, alors je t'enverrais mon code en privé:
Encore un super grand merci à toiet bonne journée
![]()
Bgs
Mais si, tu peux découper dans une boucle for next ou autre, pour ça, crée une fonction avec passage de paramètre, tu récupère la valeur ainsi
Code : Sélectionner tout - Visualiser dans une fenêtre à part TaValeur = TaFonction(Paramètre1, paramètre2, ParamètreEtc)Juste une idée comme ça
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Function TaFonction(Paramètre1, paramètre2, ParamètreEtc) 'Calcul : TaFonction = Paramètre1 + paramètre2 * ParamètreEtc End Function
A+
PS - Fais simplement attention au déclarations de tes variables...![]()
Comptes-en 1000 de plus et je suis pas tout à fait à 64 ko car il se compile correctement.Envoyé par DarkVader
A+
bgs
Merci pour ta réponse,Envoyé par ouskel'n'or
Je sais pas si ce que tu me dis est adapté à mon module.
Je t'envoi mon code en pv, dis-moi ce que tu en penses.
Merci !!!!
bgs
[quote="beegees"][quote="bbil"]si tu dois pouvoir découper en fonction ou procédure ...Envoyé par beegees
- Ouverture base de donnée
- traitement d'un enregistement ( contenu de ta boucle for next)
- 1 procédure / mise à jour de type de feuille excel...
...
enfi on peu trouver plein d'idées pour rendre un code plus lissible ... en essayant d'y trouver des morceaux de codes plus ou moins répétitifs.. que l'on peu extraire en procédure ou fonctions.![]()
Partager