Bonjour à tous,
dans ce cas j'utilise un nom masqué.
C'est un nom de niveau appli (issu de excel4), donc visible de tous les classeurs, et de durée de vie de la session excel.
Ca n'est pas un booléen mais comme tu peux le tester...
Bien expliqué ici : https://web.archive.org/web/20151115092201/http://www.xcell.excelabo.net:80/hnamespace
(ça vient d'un site qui a dû être hébergé sur un autre suite à piratage, qui a lui-même disparu )
Je met l'essentiel :
- Création ou changement de valeur d'un nom masqué
Application.ExecuteExcel4Macro "SET.NAME(""Nom_Test"",100)"
- Lecture de la référence d'un nom masqué
Résult = Application.ExecuteExcel4Macro("GET.NAME(""Nom_Test"")")
Cette instruction renvoie la valeur attachée au nom masqué comme formule, de la même manière que le champ "RefersTo" d'un nom classique. Par exemple, "=54" (nombre), "="Test"" (chaîne) ou "=[Test.xls]Feuil1!L1C1" (référence de plage).
- Lecture de la valeur d'un nom masqué
Résult = Application.ExecuteExcel4Macro("Nom_Test")
- Destruction d'un nom masqué
Application.ExecuteExcel4Macro "SET.NAME(""Nom_Test"")"
Mais si tu as un classeur que tu es sûr qu'il sera toujours présent, tu peux aussi aller lire un nom d'un autre classeur :
Debug.Print Workbooks("Classeur1.xlsx").Names("test")
eric