Faire référence à des plages nommées
Il est plus facile d'identifier des plages par leurs noms que par un style de référence A1. Pour nommer une plage sélectionnée, cliquez sur la zone nom à l'extrémité gauche de la barre de formule, tapez un nom puis appuyez sur Entrée.
Note Il existe deux types de plages nommées : Plage nommée de classeur et Plage nommée spécifique à la feuille de travail.
Plage nommée de classeur
Une plage nommée de classeur fait référence à une plage spécifique à partir de n’importe où dans le classeur (s’applique globalement).
Comment créer une plage nommée de classeur :
Comme expliqué ci-dessus, elle est généralement créée en entrant un nom dans la zone nom à l’extrémité gauche de la barre de formule. Notez que les espaces ne sont pas autorisés dans le nom.
Plage nommée de feuille de calcul spécifique
Une plage nommée de feuille de calcul spécifique fait référence à une plage dans une feuille de calcul spécifique. Elle n’est pas applicable à toutes les feuilles de calcul dans un classeur. Faites référence à cette plage nommée par le nom de la même feuille de calcul, mais à partir d’une autre feuille de calcul, vous devez utiliser le nom de la feuille de calcul, y compris « ! » le nom de la plage (exemple : la plage « Nom » « =Feuille1 ! » Nom »).
L’avantage est que vous pouvez utiliser du code VBA pour générer des nouvelles feuilles avec le même nom pour les mêmes plages dans ces feuilles sans générer une erreur indiquant que le nom est déjà utilisé.
Comment créer une plage nommée de feuille de calcul spécifique :
- Sélectionnez la plage à nommer.
- Cliquez sur l’onglet « Formules » dans le ruban en haut de la fenêtre Excel.
- Cliquez sur le bouton « Définir un nom » dans l’onglet Formule.
- Dans la boîte de dialogue « Nouveau nom », sous le champ « Étendue » sélectionnez la feuille de calcul spécifique où doit figurer la plage que vous souhaitez définir (par ex., « Feuil1 ») : le nom devient spécifique à cette feuille de calcul. Si vous choisissez « Classeur », alors le nom sera appliqué au classeur.
Exemple de plage nommée spécifique à la feuille de travail : la plage sélectionnée à nommer est A1 :A10
Le nom de la plage est nom ». Dans la feuille de calcul, référez à la plage nommée simplement en entrant « =nom » dans une cellule. À partir d’une autre feuille de calcul, référez à la plage de feuille de calcul spécifique en incluant le nom de la feuille de calcul dans une cellule : « =Feuil1!nom ».
Référence à une plage nommée
L'exemple suivant montre comment faire référence à la plage nommée « MyRange » dans le classeur nommé « MyBook.xls ».
Sub FormatRange()
Range("MyBook.xls!MyRange").Font.Italic = True
End Sub
L'exemple suivant montre comment faire référence à la plage « Sheet1!Sales » du classeur « Report.xls ».
Sub FormatSales()
Range("[Report.xls]Sheet1!Sales").BorderAround Weight:=xlthin
End Sub
Pour sélectionner une plage nommée, utilisez la méthode GoTo qui active le classeur et la feuille de calcul puis sélectionne la plage.
Sub ClearRange()
Application.Goto Reference:="MyBook.xls!MyRange"
Selection.ClearContents
End Sub
L'exemple suivant montre comment la même procédure doit être écrite pour le classeur actif.
Sub ClearRange()
Application.Goto Reference:="MyRange"
Selection.ClearContents
End Sub
Exemple de code fourni par : Dennis Wallentin, VSTO & .NET & Excel
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 saisies dans la feuille 1 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
Boucle sur des cellules d'une plage nommée
L’exemple suivant exécute une boucle sur chacune des cellules d’une plage nommée à l’aide de la boucle For Each...Next. Si la valeur d’une de ces cellules dépasse la valeur de Limit
, la couleur de la cellule devient jaune.
Sub ApplyColor()
Const Limit As Integer = 25
For Each c In Range("MyRange")
If c.Value > Limit Then
c.Interior.ColorIndex = 27
End If
Next c
End Sub
À propos du collaborateur
Dennis Wallentin est l’auteur de VSTO & .NET & Excel, un blog consacré aux solutions .NET Framework pour Excel et Excel Services. Dennis développe des solutions Excel depuis plus de 20 ans et a également co-écrit « Professional Excel Development: The Definitive Guide to Developing Applications Using Microsoft Excel, VBA and .NET (2nd Edition) ».
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.
Commentaires
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Envoyer et afficher des commentaires pour