IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Longueur de procédure


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 95
    Par défaut Longueur de procédure
    Bonjour à tous,

    Je rencontre pour la première fois un problème lié à la longueur d'une procédure en VBA Excel.
    L'objectif est de stocker en dur dans une macro un tableau aux multiples entrées pour que ce soit portable sans contraintes liées aux différents environnements.

    Donc je déclare un immense tableau que je remplis mais, au final j'ai l'erreur suivante: "Procédure trop grande".

    D'où question: quelle est la longueur max d'une procédure? Pour info, ma sub fait environ 25.000 lignes

    Merci à tous

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 453
    Par défaut
    Je ne sais pas quelle est la longueur maximale d'une macro.

    Par contre, je sais que ta méthode est insensée (pardonnes-moi l'expression) en programmation. Tu peux tout simplement te faire un fichier texte dans lequel tu sépare tes données en lignes (enregistrements) et chaque item dans ta ligne par de caractères de tabulation (champs), comme dans une base de donnée. Tu lis ensuite ce fichier texte dans ta macro en remplissant ton tableau.

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut
    je ne connais pas les limites du code, mais je crois que le problème s'est déjà posé sur ce forum et je pencherais pour les 1024, sans aucune certitude

    ça me semble bizarre : les sub ont plus de problèmes que les tableaux
    Si tu n'as pas de mise en page / formats, tu peux le mettre en format 95, et tu n'auras pas de problème de compatibilité
    Ceci étant dit, une erreur sera introuvable (25000 lignes)
    donc au minimum, divise ta macro en module et fait une macro qui lance les autres une après l'autre.
    A+

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 95
    Par défaut
    Hello,

    merci pour vos réponses. Quelques précisions cependant:
    - pour Singular, la méthode est effectivement curieuse mais l'objectif est de ne pas avoir de fichiers à côté pour importer directement un module dans un projet indépendemment de toute autre contrainte. Le code doit être capable d'apporter tout seul les infos nécessaires et je dois me passer de tout autre fichier.
    - pour Gorfael, le code est ultra répétitif et est généré par une autre macro que j'ai écrite. Donc à priori, soit il n'y a aucune erreur, soit c'est toujours la même et elle apparait 25000 fois donc hyper détectable. Mais j'ai quand même testé mon code sur des morceaux de fichiers.

    Pour info, j'ai finalement fractionné mon code en 250 fonctions privées appelées par un main qui sait qui appeler à quel moment.

    Si quelqu'un connait la longueur max d'une sub, je suis toujours preneur.

    Merci

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 453
    Par défaut
    Tout ce que j'ai trouvé est dans "Limites et spécifications Excel" de l'aide en ligne.

    Fonctions personnalisées -----------Limité par la quantité de mémoire disponible
    Ce qui ne parle pas du nombre de lignes dans la macro.

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    De mémoire : limite de 64 KO pour une procédure

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    j'ai essayé d'écrire une procédure à la limite de taille
    en fait j'ai supprimé des lignes jusqu'à ce qu'elle soit acceptée
    j'en suis à 4548 lignes dans la même procédure
    si on recopie la procédure en question no problème donc c'est bien une limite par sub

    ceci étant la méthode est plus que limite, et me semble relever d'un défaut
    d'abstraction, ton traitement doit être au plus près des données, à vue d'oeil
    un programme qui écrit le programme qui charge le tableau (pauvre facteur)
    doit être capable de charger le tableau

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de longueur de requête dans une procédure stockée
    Par doudou_rennes dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 21/03/2007, 16h39
  2. ProgressBar avec plusieurs procédures
    Par elifqaoui dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 08/09/2002, 18h03
  3. [Comparatif] Procédures stockées, triggers, etc.
    Par MCZz dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 28/08/2002, 12h27
  4. Procédure avec un nombre variable d'arguments
    Par charly dans le forum Langage
    Réponses: 15
    Dernier message: 21/06/2002, 11h08
  5. longueur d'une structure
    Par bohemianvirtual dans le forum C
    Réponses: 6
    Dernier message: 28/05/2002, 18h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo