gestion de la mémoire et VBA

siocnarf

XLDnaute Occasionnel
Bonjour,

Je fais des extractions ou j'obtiens un tableau de 140 000 lignes par 15 colonnes. Lorsque j'arrive à environ 1 Go, j'obtiens des ressources systèmes insuffisantes ou mémoire insuffisante.

1. Quelles sont les bonnes manières de programmation qui permettent de bien gérer la mémoire?
2. Comment puis-je savoir si des variables mémoires encombre et sont la cause de mon problème?
3. Est-ce que Excel 2010 est plus robuste au niveau de la mémoire?


Merci,

François Racine
 

Jam

XLDnaute Accro
Re : gestion de la mémoire et VBA

Bonjour,

Le meilleur conseil que je puisse te donner est d'utiliser Excel pour ce pourquoi il existe: faire des calculs, et d'utiliser un SGBD pour traiter des (bases) de données.

Les grosses extractions accolées à des calculs importants + des TCD par exemple peuvent effectivement aboutir à des saturations mémoires. Je reste surpris par la taille dont tu parles: 1Go ?!!! C'est la taille du fichier ou la place occupée en RAM ?
Quel lien y a-t-il avec des variables et des données ? Peux-tu approfondir ?
Pour l'optimisation du code, une bonne recherche avec un bon moteur de recherche ou mieux sur le site devrait te permettre de trouver des solutions.

Pour ma part j'ai aussi des tableaux de données qui font plusieurs centaines de milliers de lignes x plusieurs 10zaines de ligne sans ce problème sous XL2K7. XL2K10 étant plus performant encore, je ne pense pas que ton problème vienne du soft. Il est donc fort probable que tu rajoutes des couleurs, des polices de caractères et de nombreuses formules qui font qu'à un moment donné les ressources systèmes sont débordées.

Bon courage,
 

Misange

XLDnaute Barbatruc
Re : gestion de la mémoire et VBA

Bonjour
Tu parles d'extraction : ce sont seulement des data ou tu as aussi 140000 lignes de formules dans ton tableau ?
Si ce sont seulement des datas, c'est très curieux. Vérifie que tu n'embarques pas en même temps que tes extraction des images (puces par exemple).
Comment fais tu ton extraction et ton importation ?
Si tu es gros consommateur de lignes, regarde du côté de power pivot.
Il n'est généralement pas du tout utile de travailler avec la version 64 bits d'excel, celle-ci posant quelques problèmes de compatibilité dans les codes et les add-ins. Cependant, si tu travailles sur de grosses bases, ça vaut la peine de regarder de ce côté.
Pour qu'on te réponde mieux il faut que tu nous donnes plus de détails sur ce que tu fais.
 

siocnarf

XLDnaute Occasionnel
Re : gestion de la mémoire et VBA

Bonjour,

Lorsque j'ai débuté mon projet, il n'y avait pas autant de données à traiter... De toute façon Access n'est pas disponible sur les postes de travail et l'organisation ne voit pas d'un bon oeil le fait qu'un simple utilisateur puisse développer en Access sur son poste.

Le 1Go est en mémoire. Lorsque ça plante, si je sauvegarde le chiffrier et redémarre Excel, habituellement je me rend jusqu'à la fin du processus. J'imagine donc qu'il s'agit de fuite de mémoire. J'ai commencé à revalider mon code pour mettre des

set=nothing
et à revalider les DIM.
J'avais des Array en variable public, je les ai mis à la place dans une routine.

Code:
Quel lien y a-t-il avec des variables et des données ? Peux-tu approfondir ?

variable = variable mémoires en VBA
données = Le résultat de mes extractions qui devra être traité

Code:
couleurs, des polices de caractères et de nombreuses formules qui font qu'à un moment donné les ressources systèmes sont débordées.

Effectivement, je formate mon tableau mais je n'ai aucune formule. Quel est l'impact du formatage sur la mémoire de Excel?


Merci,


François Racine
 

siocnarf

XLDnaute Occasionnel
Re : gestion de la mémoire et VBA

Bonjour,

Je fais de l'extraction à partir des journaux d'événements des serveurs en passant par WMI. En bout de ligne j'obtiens à la fin du mois 140 000 lignes et chaque ligne est un enregistrement.


Merci,


François Racine
 

Misange

XLDnaute Barbatruc
Re : gestion de la mémoire et VBA

L'impact du formatage sur la mémoire d'excel est important. Il faut impérativement éviter de formater toute une colonne ou toute une ligne quand on a ce genre de pb mais restreindre le formatage aux cellules contenant des données. C'est particulièrement vrai si c'est une mise en forme conditionnelle avec des formules complexes. Tout ceci a pris une importance particulière avec l'augmentation du nombre de lignes dans la version 2007.

Mais sans voir un bout de ton classeur (macros, formats...) difficile d'être plus explicite.
 

Discussions similaires

Réponses
0
Affichages
843

Statistiques des forums

Discussions
312 777
Messages
2 092 031
Membres
105 157
dernier inscrit
looping-07