Espace pile insuffisant

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

mathieumalet

XLDnaute Nouveau
Bonjour à tous,

J'ai créé un programme pour automatiser le traitement de données. Au bout d'un certain temps d'exécution une erreur apparait et m'informe que "l'espace pile est insuffisant".

Je sais d'où vient le problème puisque ma macro fait appel à elle même.Cela fonctionne très bien lorsque le nombre de ligne à traiter n'excède pas le millier.

Je voudrais savoir si il n'est pas possible de "vider le cache mémoire d'excel par une instruction VBA avant de ré-exécuter ma macro".

Merci d'avance,

@+
 
Re : Espace pile insuffisant

re:

ton fichier c'est la macro en texte, il nous en faut un peu plus, physiquement, on ne sait pas ce que tu cherches et ou ca doit aller.

par contre, j'ai v une serie de boucles while, when, do, loop, exit do, loop until etc, avec aucun traitement à l'interieur, elles servent à quoi ces boucles ?????

de plus à la fin de ta routine : Application.run "Mat2" or tu es deja dans Mat2
si tu as bsoin de relancer ta macro, fait un goto ...........

m'enfin il y a ieux à faire, mais sans le fichier de base, et connaitre ce que tu desires faire, c'est tres difficile

@ te lire
 
Re : Espace pile insuffisant

Avant de partir,

le débute de ta macro pôurrait être simplifié comme ceci:

Sheets("Feuil3").Select
ligne = Columns(5).Find(What:="P")
Do
MyReference = Cells(ligne + 1, 5)
....

après je ne comprend plus ce que tu veux faire

en effet:
' Boucle externe.
Ligne = ActiveCell.Row
Rows(Ligne).Select
ActiveCell.Select
Selection.Next.Select
Selection.Next.Select
Selection.Next.Select
Selection.Next.Select
ActiveCell.Select

retourne au point de départ...

cette boucle est inutile:
Do While MyReference = "C" 'je recherche l'argument valide'
Exit Do
Loop

Donc, essaies de continuer de simplifier.

PS: c'est la feuille excel qui nous intéresse!
 
Re : Espace pile insuffisant

Oups,

Ok avec ce fichier je pense que vous comprendrez ce que je cherche à faire.

J'exploite un tableau en feuil3 que je restitue sur ma feuile devis en effectuant plusieurs calculs.

Lancer d'abord la macro mat et vous aurez le résultat.

Ce lien n'existe plus

Ciao,
 
Re : Espace pile insuffisant

Salut Mathieu,

Pour régler ton problème de pile, j'ai modifié ton fichier d'origine 😉
J'ai surtout supprimer Mat2 qui pour moi est inutile, à toi de me dire !

Il y'a quelques petits trucs à arranger à droite à gauche, mais voilà l'ébauche ...

A+

Question : A quoit te sert la ligne Détails #
 

Pièces jointes

Dernière modification par un modérateur:
Re : Espace pile insuffisant

Salut,

Tu vas me faire culpabiliser c'est sympa d'avoir modifier ce fichier.

En gros, le tableau de la feuil3 peut avoir une structure différente et comporter des Postes (lettre P dans la feuil3), des taches (lettre L dans la feuil3) , des détails (lettre G dans la feuil3, pas présents ici) et des sous détails (lettre S dans la feuil3).

Ma macro mat2 me permet de créer un nouveau poste et de remplacer le premier poste de la feuil3 par "C" et de relancer la recherche de la lettre "P" (donc sur le deuxième poste).

Je sais pas si je suis bien clair mais je me dis qu'avec le fichier ça doit aider.

Je regarde ta merveille et je te dis.

Ciao,
 
Re : Espace pile insuffisant

Salut Mathieu,

Si j'ai bien compris ta logique de départ, tu remplace chaque lettre "P", "L", "G" ou "S" par la lettre "C" pour que lors de la recherche du nouveau poste la macro en recommence pas au premier !?

C'est bien ça, ou est-ce que je me trompe !?

Par contre dans ton exemple, il n'y avait pas de "G" donc pas testé.

A+
 
Re : Espace pile insuffisant

salut,

Ta tout pigé. A priori ton code fonctionne. Cela dit, je réalise qu'il va falloir que j'intègre la ligne "G". Mais avec ton modèle je devrais m'en sortir.

Reste à savoir maintenant si je sature encore la mémoire. Il faut que je teste. En tout cas c'est sympa de me filer un coup de pouce.

Je regarde ça et 1e te tiens au courant ds quelques minutes.

Ciao
 
Re : Espace pile insuffisant

Bon ok c'est bon, je m'incline tout marche.

Pas de saturation de l'espace pile. je vais m'inspirer de ton code pour optimiser le reste de mon fichier.

Je te remercie sincèrement de ton aide, c'est sympa. Bonne soirée, et à la prochaine.

Mathieu
 
Re : Espace pile insuffisant

Bon ok c'est bon, je m'incline tout marche.
Pas de saturation de l'espace pile. je vais m'inspirer de ton code pour optimiser le reste de mon fichier.
C'est normal, on ne fait pas appel à une autre sub via "run"

Si tu as des soucis pour la ligne "G" n'hésite pas à me le dire !

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour