excel-vba
Gammes Nommées
Recherche…
Introduction
Définir une plage nommée
L'utilisation de plages nommées vous permet de décrire la signification d'un contenu de cellule (s) et d'utiliser ce nom défini à la place d'une adresse de cellule réelle.
Par exemple, la formule =A5*B5
peut être remplacée par =Width*Height
pour faciliter la lecture et la compréhension de la formule.
Pour définir une nouvelle plage nommée, sélectionnez la ou les cellules à nommer, puis tapez un nouveau nom dans la zone Nom en regard de la barre de formule.
Remarque: les plages nommées sont définies par défaut sur une portée globale, ce qui signifie qu'elles sont accessibles depuis n'importe où dans le classeur. Les anciennes versions d'Excel prennent en charge les noms en double, il faut donc veiller à éviter les noms en double de portée mondiale, sinon les résultats seront imprévisibles. Utilisez le gestionnaire de noms de l'onglet Formules pour modifier l'étendue.
Utilisation de plages nommées dans VBA
Créer une nouvelle plage nommée appelée 'MyRange' affectée à la cellule A1
ThisWorkbook.Names.Add Name:="MyRange", _
RefersTo:=Worksheets("Sheet1").Range("A1")
Supprimer la plage nommée nommée par nom
ThisWorkbook.Names("MyRange").Delete
Accès à la plage nommée par nom
Dim rng As Range
Set rng = ThisWorkbook.Worksheets("Sheet1").Range("MyRange")
Call MsgBox("Width = " & rng.Value)
Accéder à une plage nommée avec un raccourci
Comme pour toute autre plage , vous pouvez accéder directement aux plages nommées à l'aide d'une notation de raccourci ne nécessitant pas la création d'un objet Range
. Les trois lignes de l'extrait de code ci-dessus peuvent être remplacées par une seule ligne:
Call MsgBox("Width = " & [MyRange])
Remarque: La propriété par défaut pour une plage est sa valeur, donc
[MyRange]
est identique à[MyRange].Value
Vous pouvez également appeler des méthodes sur la plage. Ce qui suit sélectionne MyRange
:
[MyRange].Select
Remarque: une mise en garde est que la notation de raccourci ne fonctionne pas avec les mots utilisés ailleurs dans la bibliothèque VBA. Par exemple, une plage nommée
Width
ne serait pas accessible en tant que[Width]
mais fonctionnerait comme prévu si elle était accessible viaThisWorkbook.Worksheets("Sheet1").Range("Width")
Gérer les plages nommées à l'aide du gestionnaire de noms
Onglet Formules> Groupe Noms définis> Bouton Gestionnaire de noms
Le gestionnaire nommé vous permet de:
- Créer ou changer le nom
- Créer ou modifier la référence de cellule
- Créer ou modifier l'étendue
- Supprimer une plage nommée existante
Named Manager fournit un aperçu rapide des liens rompus.
Tableaux de plage nommés
Exemple de fiche
Code
Sub Example()
Dim wks As Worksheet
Set wks = ThisWorkbook.Worksheets("Sheet1")
Dim units As Range
Set units = ThisWorkbook.Names("Units").RefersToRange
Worksheets("Sheet1").Range("Year_Max").Value = WorksheetFunction.Max(units)
Worksheets("Sheet1").Range("Year_Min").Value = WorksheetFunction.Min(units)
End Sub
Résultat