{"id":51,"date":"2025-06-12T21:25:33","date_gmt":"2025-06-12T21:25:33","guid":{"rendered":"https:\/\/loufab.alwaysdata.net\/blogaccess\/?p=51"},"modified":"2025-08-19T13:31:23","modified_gmt":"2025-08-19T13:31:23","slug":"ms-access-fermeture-en-cascade-des-fenetres-de-code","status":"publish","type":"post","link":"https:\/\/loufab.alwaysdata.net\/blogaccess\/index.php\/2025\/06\/12\/ms-access-fermeture-en-cascade-des-fenetres-de-code\/","title":{"rendered":"VBA : Fermeture en cascade des fen\u00eatres de code"},"content":{"rendered":"\n<p>Mes d\u00e9veloppements me confrontent souvent \u00e0 des applications volumineuses o\u00f9 le code prend une place importante. Dans ce cas, et tant que l\u2019application n\u2019est pas compil\u00e9e (mde \/ accde), <strong>l\u2019\u00e9diteur Visual Basic <\/strong>ou <strong>VBE <\/strong>(Alt-F11) ouvre toutes les fen\u00eatres de code y compris celles des biblioth\u00e8ques non compil\u00e9es ou non prot\u00e9g\u00e9es. <\/p>\n\n\n\n<p>Ce comportement se produit \u00e9galement lors de l\u2019ex\u00e9cution de l\u2019application m\u00eame si l\u2019\u00e9diteur <strong>VBA <\/strong>n\u2019est pas ouvert. Cela encombre la<strong> pile GDI<\/strong> de Windows<strong> <\/strong>jusqu\u2019\u00e0 <strong>saturation<\/strong> de celle-ci. J\u2019ai donc cr\u00e9\u00e9 un bout de code pour refermer les fen\u00eatres de code.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"visualbasic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Public Function CloseAllVbeWindows() \n' Auteur : Fabrice CONSTANS MVP \n' Ferme toutes les fen\u00eatres du VBE \n' permet de r\u00e9duire les handles GDI et d'\u00e9viter la saturation m\u00e9moire. \n\n   Dim i As Integer \n   Dim j As Integer\n \n   On Error Resume Next \n\n   For i = 1 To Application.VBE.VBProjects.Count \n      For j = 1 To Application.VBE.VBProjects(i).VBE.Windows.Count \n         If Application.VBE.VBProjects(i).VBE.Windows(j).Type = vbext_wt_CodeWindow Then \n            ' les fenetres de code\n            Application.VBE.VBProjects(i).VBE.Windows(j).Close \n         End If \n      Next \n   Next \n\n   Exit Function \nEnd Function\n<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Liste des constantes des fen\u00eatres VBE<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Valeur Num\u00e9rique<\/strong><\/td><td><strong>Constante VBA<\/strong><\/td><td><strong>Description<\/strong><\/td><\/tr><tr><td>0<\/td><td>vbext_wt_CodeWindow<\/td><td>Fen\u00eatre de code<\/td><\/tr><tr><td>1<\/td><td>vbext_wt_Designer<\/td><td>Fen\u00eatre de concepteur (UserForm)<\/td><\/tr><tr><td>2<\/td><td>vbext_wt_Browser<\/td><td>Explorateur de projet<\/td><\/tr><tr><td>3<\/td><td>vbext_wt_Watch<\/td><td>Fen\u00eatre Espion<\/td><\/tr><tr><td>4<\/td><td><code>vbext_wt_Locals<\/code><\/td><td>Fen\u00eatre Variables locales<\/td><\/tr><tr><td>5<\/td><td>vbext_wt_Immediate<\/td><td>Fen\u00eatre Ex\u00e9cution imm\u00e9diate<\/td><\/tr><tr><td>6<\/td><td>vbext_wt_ProjectWindow<\/td><td>Fen\u00eatre Projet<\/td><\/tr><tr><td>7<\/td><td>vbext_wt_PropertyWindow<\/td><td>Fen\u00eatre Propri\u00e9t\u00e9s<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">retrouvez toutes les options dans l&rsquo;aide Microsoft<\/figcaption><\/figure>\n\n\n\n<p>Vous pouvez appeler cette proc\u00e9dure apr\u00e8s le chargement de votre application ou sur une macro <strong>AutoKeys<\/strong>.<\/p>\n\n\n\n<p>Bonne utilisation !<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mes d\u00e9veloppements me confrontent souvent \u00e0 des applications volumineuses o\u00f9 le code prend une place importante. Dans ce cas, et tant que l\u2019application n\u2019est pas compil\u00e9e (mde \/ accde), l\u2019\u00e9diteur Visual Basic ou VBE (Alt-F11) ouvre toutes les fen\u00eatres de &hellip; <a href=\"https:\/\/loufab.alwaysdata.net\/blogaccess\/index.php\/2025\/06\/12\/ms-access-fermeture-en-cascade-des-fenetres-de-code\/\">Continuer la lecture <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[7],"class_list":["post-51","post","type-post","status-publish","format-standard","hentry","category-code-vba","tag-code-vba"],"_links":{"self":[{"href":"https:\/\/loufab.alwaysdata.net\/blogaccess\/index.php\/wp-json\/wp\/v2\/posts\/51","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/loufab.alwaysdata.net\/blogaccess\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/loufab.alwaysdata.net\/blogaccess\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/loufab.alwaysdata.net\/blogaccess\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/loufab.alwaysdata.net\/blogaccess\/index.php\/wp-json\/wp\/v2\/comments?post=51"}],"version-history":[{"count":4,"href":"https:\/\/loufab.alwaysdata.net\/blogaccess\/index.php\/wp-json\/wp\/v2\/posts\/51\/revisions"}],"predecessor-version":[{"id":432,"href":"https:\/\/loufab.alwaysdata.net\/blogaccess\/index.php\/wp-json\/wp\/v2\/posts\/51\/revisions\/432"}],"wp:attachment":[{"href":"https:\/\/loufab.alwaysdata.net\/blogaccess\/index.php\/wp-json\/wp\/v2\/media?parent=51"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/loufab.alwaysdata.net\/blogaccess\/index.php\/wp-json\/wp\/v2\/categories?post=51"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/loufab.alwaysdata.net\/blogaccess\/index.php\/wp-json\/wp\/v2\/tags?post=51"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}