Qu’est-ce qu’un « Defined Name »
Un « Defined Name » est un descripteur de texte que vous pouvez utiliser pour décrire la signification du contenu d'une cellule, d’une plage de cellules, d’une constante, ou d’une formule.
Une fois que le « Defined Name » est établi, vous pouvez l’utiliser partout où vous le feriez normalement.
Cela rend les formules beaucoup plus facile à comprendre et à maintenir.
Par exemple, la formule = A1 * B1 n'est pas très significative, sauf si vous connaissez la signification des cellules A1 et B2. Toutefois, si vous attribuez des « Defined Name » pour A1 et B1 , vous pouvez écrire votre formule comme ceci : = PrixUnitaire *Quantite
De toute évidence, l’utilisation des « Defined Name « rend la formule beaucoup plus facile à comprendre et à maintenir.
Comment créer un « Defined Name » ?
Il y a, à ma connaissance, 5 façons de créer un « Defined Name ».
- Sélectionner la plage de cellules et remplacer le nom dans la « name box » , ici B1 par le nom que vous désirez , ici PrixUnitaire. Confirmer votre choix avec <Enter>.
- Vous sélectionnez la plage de cellules et vous vous rendez dans le menu Formulas, puis vous cliquez sur Define Name (Définir un nom en français).
Un écran sera affiché. Vous pourrez y insérer le nom du « Defined Name » , son scope , un commentaire et modifier la référence si nécessaire.
- Si la feuille contient déjà des information utiles , vous sélectionnez la plage de cellules ( valeurs et libellés ) et vous vous rendez dans le menu Formulas, puis vous cliquez sur Create from Selection Sélectionnez l’emplacement des libellés qui vont devenir les noms des « Defined Names » ( ici Top Row )
Voici le résultat
- La dernière option « Name Manager » , vous permet de gérer ( ajouter, modifier, effacer ) les noms de vos « Defined Names » .
- Vous pouvez utiliser VBA pour créer vos « Defined Names ».
VbaSélectionnezSub test_defined_name() ThisWorkbook.Names.Add Name:="Test_defined_visible", RefersTo:=Worksheets("Sheet1").Range("A1") End Sub
Ce code créera le nom Test_defined_visible pour la sélection A1 de la feuille 1.
Si vous ajoutez un nom qui existe déjà, il sera automatiquement effacé et recréé avec la nouvelle référence.
Il n’est pas nécessaire de l’effacer avant. Par défaut les « Defined Name » créé manuellement ou avec le visual Basic sont visible.
Ils apparaitront dans la « Name Box » ainsi que dans le « Name Manager » Vous pouvez cacher un nom et le rendre invisible à l’utilisateur. Un « Defined Name » caché peut être utilisé de la même manière qu’un nom visible.
Pour cacher un nom il suffit de mettre la paramètre « Visible » à « False » comme ci-dessous.
VbaSélectionnezSub test_defined_cache() ThisWorkbook.Names.Add Name:="Test_defined_cache", RefersTo:=Worksheets("Sheet1").Range("A2"), Visible:=False End Sub
La seule façon de cacher un « Define Name » est le VBA code. Il n’y a rien d’autres dans l’interface Excell qui vous permettra de cacher un « Defined Name »
Un exemple :
VbaSélectionnezSub test_defined_name() ThisWorkbook.Names.Add Name:="Test_defined_visible", RefersTo:=Worksheets("Sheet1").Range("A1") ThisWorkbook.Names.Add Name:="Test_defined_cache", RefersTo:=Worksheets("Sheet1").Range("A2"), Visible:=False ThisWorkbook.Names.Add Name:="Test_defined_cache1", RefersTo:=Worksheets("Sheet1").Range("A2:A10"), Visible:=False ThisWorkbook.Names.Add Name:="Test_defined_cache2", RefersTo:=Worksheets("Sheet1").Range("A2:B10"), Visible:=False ThisWorkbook.Names.Add Name:="Test_defined_cache3", RefersTo:=Worksheets("Sheet1").Range("A2"), Visible:=False End Sub
Seul "defined_visible" est visible, vous aurez accès aux « Defined Names » cachés avec le VBA code ci-dessous. L'information sera affichée dans l'"Immediate Windows"
VbaSélectionnezSub ShowInvisibleDefineNAme() Dim nm As Name For Each nm In ActiveWorkbook.Names On Error Resume Next With nm If nm.Visible = False Then Debug.Print "Name: " & nm.Name Debug.Print "RefersTo: " & nm.RefersTo Debug.Print "Visible: " & nm.Visible Debug.Print "====================================" End If End With Next nm End Sub
Vous pouvez effacer un « Defined Name » en utilisant le code suivant.
VbaSélectionnezSub Delete_defined_name()ThisWorkbook.Names("Test_defined_visible").Delete End Sub >
Nous voici au terme de ce post. J’espère que vous aurez trouvé autant de plaisir que moi à découvrir les manières de créer un « Defined Name ».
A bientôt
Aucun commentaire :
Enregistrer un commentaire