Objet Range (Excel)Range object (Excel)

Cette collection représente une cellule, une ligne, une colonne ou une sélection de cellules contenant un ou plusieurs blocs contigus de cellules ou une plage 3D.Represents a cell, a row, a column, a selection of cells containing one or more contiguous blocks of cells, or a 3D range.

RemarquesRemarks

Les propriétés et méthodes suivantes pour le renvoi d'un objet Range sont décrites dans la section Exemples :The following properties and methods for returning a Range object are described in the Example section:

  • Propriétés Range et Cells de l’objet WorksheetRange and Cells properties of the Worksheet object
  • Propriétés Range et Cells de l’objet RangeRange and Cells properties of the Range object
  • Propriété Offset de l’objet RangeOffset property of the Range object
  • Méthode Union de l’objet ApplicationUnion method of the Application object

ExempleExample

Utilisez l’objet Range (arg), où arg désigne la plage, pour renvoyer un objet Range qui représente une seule cellule ou une plage de cellules.Use Range (arg), where arg names the range, to return a Range object that represents a single cell or a range of cells. L’exemple suivant montre comment placer la valeur de la cellule A1 dans la cellule A5.The following example places the value of cell A1 in cell A5.

Worksheets("Sheet1").Range("A5").Value = _ 
    Worksheets("Sheet1").Range("A1").Value

L’exemple suivant remplit la plage A1:H8 avec des nombres aléatoires en définissant la formule pour chaque cellule de la plage.The following example fills the range A1:H8 with random numbers by setting the formula for each cell in the range. Lorsqu’elle est utilisée sans identificateur d’objet (objet à la gauche du point), la propriété Range renvoie une plage sur la feuille active.When it's used without an object qualifier (an object to the left of the period), the Range property returns a range on the active sheet. Si la feuille active n’est pas une feuille de calcul, la méthode échoue.If the active sheet isn't a worksheet, the method fails.

Utilisez la méthode Activer de l’objet Worksheet pour activer une feuille de calcul avant d’utiliser la propriété Range sans identificateur d’objet explicite.Use the Activate method of the Worksheet object to activate a worksheet before you use the Range property without an explicit object qualifier.

Worksheets("Sheet1").Activate 
Range("A1:H8").Formula = "=Rand()"    'Range is on the active sheet

L'exemple suivant montre comment supprimer le contenu de la plage intitulée Criteria.The following example clears the contents of the range named Criteria.

Notes

Si vous utilisez un argument de type texte pour l'adresse de la plage, vous devez spécifier l'adresse en notation de style A1 (l'utilisation de la notation de style L1C1 n'est pas autorisée).If you use a text argument for the range address, you must specify the address in A1-style notation (you cannot use R1C1-style notation).

Worksheets(1).Range("Criteria").ClearContents

Utilisez la syntaxe Cells(row, column) où row est l'index de ligne et column l'index de colonne, pour renvoyer une seule cellule.Use Cells (row, column), where row is the row index and column is the column index, to return a single cell. L’exemple suivant définit la valeur pour la cellule A1 à 24.The following example sets the value of cell A1 to 24.

Worksheets(1).Cells(1, 1).Value = 24

L'exemple suivant définit la formule pour la cellule A2.The following example sets the formula for cell A2.

ActiveSheet.Cells(2, 1).Formula = "=Sum(B1:B5)"

Bien que vous puissiez également utiliser Range("A1") pour renvoyer la cellule A1, il sera peut-être parfois plus pratique d’utiliser la propriété Cells, car vous pouvez utiliser une variable pour la ligne ou pour la colonne.Although you can also use Range("A1") to return cell A1, there may be times when the Cells property is more convenient because you can use a variable for the row or column. L’exemple suivant crée des en-têtes de colonne et de ligne sur Sheet1.The following example creates column and row headings on Sheet1. N’oubliez pas qu’après que la feuille de calcul a été activée, la propriétéCells peut être utilisée sans déclaration explicite de feuille (elle renvoie une cellule sur la feuille active).Be aware that after the worksheet has been activated, the Cells property can be used without an explicit sheet declaration (it returns a cell on the active sheet).

Notes

Bien que vous puissiez utiliser les fonctions de chaîne Visual Basic pour modifier les références de style A1, il est plus facile (et préférable en matière de programmation) d'utiliser la notation Cells(1, 1).Although you could use Visual Basic string functions to alter A1-style references, it is easier (and better programming practice) to use the Cells(1, 1) notation.

Sub SetUpTable() 
Worksheets("Sheet1").Activate 
For TheYear = 1 To 5 
    Cells(1, TheYear + 1).Value = 1990 + TheYear 
Next TheYear 
For TheQuarter = 1 To 4 
    Cells(TheQuarter + 1, 1).Value = "Q" & TheQuarter 
Next TheQuarter 
End Sub

Utilisez la syntaxe expression.Cells (row, column), où expression est une expression qui renvoie un objet Range, et où row et column sont définis par rapport à l’angle supérieur gauche de la plage, pour renvoyer une partie de plage.Use_expression_.Cells (row, column), where expression is an expression that returns a Range object, and row and column are relative to the upper-left corner of the range, to return part of a range. L'exemple suivant définit la formule pour la cellule C5.The following example sets the formula for cell C5.

Worksheets(1).Range("C5:C10").Cells(1, 1).Formula = "=Rand()"

Utilisez la syntaxe Range (cell1, cell2), où cell1 et cell2 sont des objets Range spécifiant les cellules début et de fin pour renvoyer un objet Range.Use Range (cell1, cell2), where cell1 and cell2 are Range objects that specify the start and end cells, to return a Range object. L'exemple suivant définit le style de trait de bordure des cellules A1:J10.The following example sets the border line style for cells A1:J10.

Notes

N’oubliez pas que le point devant chaque occurrence de la propriété Cells est obligatoire si le résultat de la précédente déclaration With s’applique à la propriété Cells.Be aware that the period in front of each occurrence of the Cells property is required if the result of the preceding With statement is to be applied to the Cells property. Dans ce cas, il permet d’indiquer que les cellules sont dans une feuille de calcul (sans le point, la propriété Cells retournerait des cellules sur la feuille active).In this case, it indicates that the cells are on worksheet one (without the period, the Cells property would return cells on the active sheet).

With Worksheets(1) 
    .Range(.Cells(1, 1), _ 
        .Cells(10, 10)).Borders.LineStyle = xlThick 
End With

Utilisez la syntaxe Offset (row, column), où row et column sont les décalages de ligne et de colonne, pour renvoyer une plage avec un décalage spécifique par rapport à une autre plage.Use Offset (row, column), where row and column are the row and column offsets, to return a range at a specified offset to another range. L’exemple suivant sélectionne les cellule trois lignes vers le bas et une colonne à droite de la cellule dans le coin supérieur gauche de la sélection actuelle.The following example selects the cell three rows down from and one column to the right of the cell in the upper-left corner of the current selection. Vous ne pouvez pas sélectionner une cellule n’étant pas sur la feuille active, vous devez tout d’abord activer la feuille de calcul.You cannot select a cell that is not on the active sheet, so you must first activate the worksheet.

Worksheets("Sheet1").Activate 
  'Can't select unless the sheet is active 
Selection.Offset(3, 1).Range("A1").Select

Utilisez la syntaxe Union (range1, range2, ...) pour renvoyer des plages multi-zones, autrement dit, des plages composées de deux ou plusieurs blocs de cellules contiguës.Use Union (range1, range2, ...) to return multiple-area ranges—that is, ranges composed of two or more contiguous blocks of cells. L’exemple suivant crée un objet défini comme l’union des plages A1:B2 et C3:D4, puis sélectionne la plage définie.The following example creates an object defined as the union of ranges A1:B2 and C3:D4, and then selects the defined range.

Dim r1 As Range, r2 As Range, myMultiAreaRange As Range 
Worksheets("sheet1").Activate 
Set r1 = Range("A1:B2") 
Set r2 = Range("C3:D4") 
Set myMultiAreaRange = Union(r1, r2) 
myMultiAreaRange.Select

Si vous travaillez avec des sélections qui contiennent plusieurs zones, la propriété ** Zones ** est utile.If you work with selections that contain more than one area, the Areas property is useful. Elle divise une zone de sélection multiple dans des objets Range individuels, puis retourne les objets en tant que collection.It divides a multiple-area selection into individual Range objects and then returns the objects as a collection. Vous pouvez utiliser la propriété** Count ** sur la collection renvoyée pour vérifier une sélection contenant plusieurs zones, comme illustré dans l’exemple suivant.You can use the Count property on the returned collection to verify a selection that contains more than one area, as shown in the following example.

Sub NoMultiAreaSelection() 
    NumberOfSelectedAreas = Selection.Areas.Count 
    If NumberOfSelectedAreas > 1 Then 
        MsgBox "You cannot carry out this command " & _ 
            "on multi-area selections" 
    End If 
End Sub

Cet exemple utilise la méthode ** AdvancedFilter ** de l’objet Range pour créer une liste de valeurs uniques, et définir le nombre de fois que ces valeurs apparaissent dans la plage de la colonne A.This example uses the AdvancedFilter method of the Range object to create a list of the unique values, and the number of times those unique values occur, in the range of column A.

Sub Create_Unique_List_Count()
    'Excel workbook, the source and target worksheets, and the source and target ranges.
    Dim wbBook As Workbook
    Dim wsSource As Worksheet
    Dim wsTarget As Worksheet
    Dim rnSource As Range
    Dim rnTarget As Range
    Dim rnUnique As Range
    'Variant to hold the unique data
    Dim vaUnique As Variant
    'Number of unique values in the data
    Dim lnCount As Long
    
    'Initialize the Excel objects
    Set wbBook = ThisWorkbook
    With wbBook
        Set wsSource = .Worksheets("Sheet1")
        Set wsTarget = .Worksheets("Sheet2")
    End With
    
    'On the source worksheet, set the range to the data stored in column A
    With wsSource
        Set rnSource = .Range(.Range("A1"), .Range("A100").End(xlDown))
    End With
    
    'On the target worksheet, set the range as column A.
    Set rnTarget = wsTarget.Range("A1")
    
    'Use AdvancedFilter to copy the data from the source to the target,
    'while filtering for duplicate values.
    rnSource.AdvancedFilter Action:=xlFilterCopy, _
                            CopyToRange:=rnTarget, _
                            Unique:=True
                            
    'On the target worksheet, set the unique range on Column A, excluding the first cell
    '(which will contain the "List" header for the column).
    With wsTarget
        Set rnUnique = .Range(.Range("A2"), .Range("A100").End(xlUp))
    End With
    
    'Assign all the values of the Unique range into the Unique variant.
    vaUnique = rnUnique.Value
    
    'Count the number of occurrences of every unique value in the source data,
    'and list it next to its relevant value.
    For lnCount = 1 To UBound(vaUnique)
        rnUnique(lnCount, 1).Offset(0, 1).Value = _
            Application.Evaluate("COUNTIF(" & _
            rnSource.Address(External:=True) & _
            ",""" & rnUnique(lnCount, 1).Text & """)")
    Next lnCount
    
    'Label the column of occurrences with "Occurrences"
    With rnTarget.Offset(0, 1)
        .Value = "Occurrences"
        .Font.Bold = True
    End With

End Sub

MéthodesMethods

PropriétésProperties

Voir aussiSee also

Assistance et commentairesSupport and feedback

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ?Have questions or feedback about Office VBA or this 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.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.