Mémoire utilisée par Excel

Bonjour à toutes et à tous,

Déjà merci de me lire !

J'ai un code Excel qui fonctionne bien mais une question me turlupine.

Pour information, je suis sous Windows 7 64 bits et Excel 2007 32 bits.

Tout se passe dans le Gestionnaire des tâches, onglet Processus, colonne Mémoire (jeu de travail privé).

Lorsque je lance Excel, que j'ouvre mon fichier, je peux voir apparaître dans le gestionnaire des tâches, la ligne "EXCEL .EXE *32" qui utilise environ 36 000 K. Jusque là, rien d'anormal.

Je lance ma macro qui ne modifie pas son fichier elle-même mais ouvre, modifie, sauvegarde et ferme d'autres fichiers Excel. Forcément, l'utilisation de la mémoire par Excel varie durant l'opération. Une fois terminé, Excel utilise environ 1 200 000 K. Ce qui implique que je ne peux pas relancer ma macro sans fermer puis rouvrir Excel (j'ai observé que la version 32 bits d'Excel 2007 est limitée à environ 1 500 000 K même si en théorie c'est 2 giga).

Je ne comprends pas pourquoi Excel utilise plus de mémoire à la fin de la macro sachant que chaque objet créé (Dim) est vidé en fin de macro (Set = Nothing). De même pour les string (= vbNullString). Et enfin, ma macro termine par "End" qui est censé vidé le cache etc.

Si quelqu'un d'avisé comprend l'utilisation de la mémoire par Excel, ce serait génial

Merci pour votre aide !!!

Flouck qui souhaite apprendre toujours plus

Bonjour flouck

flouck a écrit :

Forcément, l'utilisation de la mémoire par Excel varie durant l'opération. Une fois terminé, Excel utilise environ 1 200 000 K. Ce qui implique que je ne peux pas relancer ma macro sans fermer puis rouvrir Excel (j'ai observé que la version 32 bits d'Excel 2007 est limitée à environ 1 500 000 K même si en théorie c'est 2 giga).

Si j'ai bien compris on parle de mémoire...

Ou as-tu lu que la mémoire utilisée par Excel est limitée !?

La seule limitation est celle de ton PC et encore le swap est là pour veiller au grain

A+

Hello,

Si il y'a des histoires de limite :

"La mémoire utilisable pour les formules et les caches de tableau croisé dynamique est désormais de 2 Go (elle était de 1 Go dans Microsoft Office Excel 2003, 128 Mo dans Microsoft Excel 2002 et 64 Mo dans Microsoft Excel 2000)."

Regardez ce lien :

https://msdn.microsoft.com/fr-fr/library/office/Ff700514%28v=office.14%29.aspx

bye

En regardant chez moi, je pense que c'est la mémoire du presse papier qui est en cause, il faudrait que tu récupère un code et que tu l'essaye, chez moi ça marche, la mémoire redescend.

La macro que j'ai testé :

Sub ClearClipboard()
Dim oDataObject As DataObject

Set oDataObject = New DataObject
oDataObject.SetText ""
oDataObject.PutInClipboard
Range("zz1").Copy 
Range("zz1").PasteSpecial

Set oDataObject = Nothing
End Sub

Bonjour,

Merci pour vos réponses !!!

L'idée du presse-papier est bonne mais j'y ai déjà pensé. Je pense qu'un des problème est généré par l'opération suivante :

Le fichier macro ouvre un fichier 1 rempli de données. Il crée un fichier 2 dans lequel il insert une dizaine de graphiques liés au fichier 1. Le fichier 2 est enregistré puis fermé. La macro recommence cette opération environ 20 fois en créant un fichier 2 similaire.

Lorsque le fichier 2 est fermé, la mémoire chute mais pas jusqu'à sa valeur initiale. On a donc une progression de la mémoire jusqu'à ce que la mémoire soit pleine !

Est-ce que le problème pourrait être au niveau des fichiers temporaires ?

Flouck

C'est possible je n'ai jamais trop creusé la question, mon soucis c'était de réduire un fichier de 98mo à moins de 10mo ou de faire des permutations de plusieurs centaines de cellules.

Dans les options il y'a l'option récupération auto. peut être quand désactivant cette option et les trucs liées, ça peut le faire.

Hello,

waard a écrit :

Hello,

Si il y'a des histoires de limite :

"La mémoire utilisable pour les formules et les caches de tableau croisé dynamique est désormais de 2 Go (elle était de 1 Go dans Microsoft Office Excel 2003, 128 Mo dans Microsoft Excel 2002 et 64 Mo dans Microsoft Excel 2000)."

Regardez ce lien :

https://msdn.microsoft.com/fr-fr/library/office/Ff700514%28v=office.14%29.aspx

bye

Il s'agit de la mémoire UTILISABLE, Excel 2007 peut utiliser au maximum 2Go de mémoire pour ses calculs (pour aller plus vite) au dela, c'est le swap qui est utilisé, transparent sur un SSD

En aucun cas il s'agit d'un blocage

Bonjour bonjour,

Merci pour vos nouvelles réponses !

L'option de récupération automatique désactivée ne change pas mon problème malheureusement.

Concernant les Go de RAM, il s'agit bien d'un blocage avec une erreur d'Automation qui fait crasher Excel.

Flouck

Rechercher des sujets similaires à "memoire utilisee"