Mes développements me confrontent souvent à des applications volumineuses où le code prend une place importante. Dans ce cas, et tant que l’application n’est pas compilée (mde / accde), l’éditeur Visual Basic ou VBE (Alt-F11) ouvre toutes les fenêtres de code y compris celles des bibliothèques non compilées ou non protégées.
Ce comportement se produit également lors de l’exécution de l’application même si l’éditeur VBA n’est pas ouvert. Cela encombre la pile GDI jusqu’à saturation. J’ai donc créé un bout de code pour refermer les fenêtres de code.
Public Function CloseAllVbeWindows()
' Auteur : Fabrice CONSTANS MVP
' Ferme toutes les fenêtres du VBE
' permet de réduire les handles GDI et d'éviter la saturation mémoire.
Dim i As Integer
Dim j As Integer
On Error Resume Next
For i = 1 To Application.VBE.VBProjects.Count
For j = 1 To Application.VBE.VBProjects(i).VBE.Windows.Count
If Application.VBE.VBProjects(i).VBE.Windows(j).Type = 0 Then
'_ 'Or Application.VBE.VBProjects(i).VBE.Windows(j).Type = 6 Then
' les fenetres de code + la fenetre projet
Application.VBE.VBProjects(i).VBE.Windows(j).Close
End If
Next
Next
Exit Function
End Function
Vous pouvez appeler cette procédure après le chargement de votre application ou sur une macro AutoKeys.
Bonne utilisation !