Bonjour,

J'ai une petite macro qui lie la propriété OnAction d'une forme. Elle tourne en boucle, et je me suis aperçu qu'Excel prenait de plus en plus de mémoire, sans la libérer.
Voici comment reproduire le bug.
Créer un classeur vierge. Créer quelques formes.
Créer un module vba avec ce code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Option Explicit
 
Public Sub testMem()
Dim wsCurs As Worksheet
Dim shCurs As Shape
Dim strShapeOnAction As String
 
  While True
    For Each wsCurs In ThisWorkbook.Sheets
      For Each shCurs In wsCurs.Shapes
        strShapeOnAction = shCurs.OnAction
      Next shCurs
      strShapeOnAction = ""
      Set shCurs = Nothing
    Next wsCurs
    Set wsCurs = Nothing
    DoEvents
  Wend
End Sub
(Je sais que les réinitialisation après les boucles ne sont pas utiles, mais au cas où)

Lancer le code et vérifier le processus Excel dans le gestionnaire de tache.
On voit très bien sa taille mémoire augmenter...

Cela ne se produit qu'à la lecture de OnAction.

Système d’exploitation Microsoft Windows*7 Entreprise (idem sur un XP SP3)
Version 6.1.7601 Service Pack 1 Build 7601
Microsoft Excel 2010 (14.0.6126.5003) SP1 MSO (14.0.6129.5000) (32bits)