Partager via


Names, objet (Excel)

Collection de tous les objets Name dans l’application ou le classeur.

Remarques

Chaque objet Name représente un nom défini pour une plage de cellules. Les noms peuvent être des noms intégrés (par exemple, Base de données, Print_Area et Auto_Open) ou des noms personnalisés.

L'argument RefersTo doit être spécifié en notation style A1 avec des symboles ($) aux endroits appropriés. Par exemple, si la cellule A10 est sélectionnée dans la feuille Sheet1 et que vous définissez un nom à l'aide de l'argument RefersTo « =sheet1!A1:B1 », le nouveau nom fait en fait référence aux cellules A10:B10 (parce que vous avez spécifié une référence relative). Pour spécifier une référence absolue, utilisez « =sheet1!$A$1:$B$1 ».

Exemple

Utilisez la propriété Names de l’objet Workbook pour renvoyer la collection Names . L’exemple suivant crée une liste de tous les noms du classeur actif, ainsi que les adresses auxquelles ils font référence.

Set nms = ActiveWorkbook.Names 
Set wks = Worksheets(1) 
For r = 1 To nms.Count 
    wks.Cells(r, 2).Value = nms(r).Name 
    wks.Cells(r, 3).Value = nms(r).RefersToRange.Address 
Next

Utilisez la méthode Add pour créer un nom et l’ajouter à la collection. L’exemple suivant crée un nom qui fait référence aux cellules A1:C20 de la feuille de calcul nommée Sheet1.

Names.Add Name:="test", RefersTo:="=sheet1!$a$1:$c$20"

Utilisez Names (index), où index est le numéro d’index du nom ou le nom défini, pour renvoyer un seul objet Name . L’exemple suivant supprime le nom mySortRange du classeur actif.

ActiveWorkbook.Names("mySortRange").Delete

Cet exemple utilise une plage nommée en tant que formule de validation des données. Pour cet exemple, les données de validation doivent apparaître sur la feuille 2 dans la plage A2:A100. Ces données de validation sont utilisées pour valider les données entrées dans la feuille Sheet1 dans la plage D2:D10.

Sub Add_Data_Validation_From_Other_Worksheet()
'The current Excel workbook and worksheet, a range to define the data to be validated, and the target range
'to place the data in.
Dim wbBook As Workbook
Dim wsTarget As Worksheet
Dim wsSource As Worksheet
Dim rnTarget As Range
Dim rnSource As Range

'Initialize the Excel objects and delete any artifacts from the last time the macro was run.
Set wbBook = ThisWorkbook
With wbBook
    Set wsSource = .Worksheets("Sheet2")
    Set wsTarget = .Worksheets("Sheet1")
    On Error Resume Next
    .Names("Source").Delete
    On Error GoTo 0
End With

'On the source worksheet, create a range in column A of up to 98 cells long, and name it "Source".
With wsSource
    .Range(.Range("A2"), .Range("A100").End(xlUp)).Name = "Source"
End With

'On the target worksheet, create a range 8 cells long in column D.
Set rnTarget = wsTarget.Range("D2:D10")

'Clear out any artifacts from previous macro runs, then set up the target range with the validation data.
With rnTarget
    .ClearContents
    With .Validation
        .Delete
        .Add Type:=xlValidateList, _
             AlertStyle:=xlValidAlertStop, _
             Formula1:="=Source"
        
'Set up the Error dialog with the appropriate title and message
        .ErrorTitle = "Value Error"
        .ErrorMessage = "You can only choose from the list."
    End With
End With

End Sub

Méthodes

Propriétés

Voir aussi

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.