Comment sélectionner des cellules/plages à l'aide des procédures Visual Basic dans Excel

Plus d'informations

Microsoft fournit les exemples de programmation à des fins d'illustration uniquement, sans garantie explicite ou implicite. Ceci inclut, de manière non limitative, les garanties implicites de qualité marchande ou d'adéquation à un usage particulier. Cet article suppose que vous connaissez le langage de programmation présenté et les outils utilisés pour créer et déboguer des procédures. Les techniciens du Support technique Microsoft peuvent vous expliquer les fonctionnalités d'une procédure particulière, mais ils ne peuvent pas modifier les exemples en vue de vous fournir des fonctionnalités supplémentaires ou de créer des procédures répondant à vos besoins spécifiques. Les exemples de cet article utilisent les méthodes Visual Basic répertoriées dans le tableau ci-après.

Méthode Arguments
------------------------------------------
Activate aucune
Cells rowIndex, columnIndex
Application.Goto reference, scroll
Offset rowOffset, columnOffset
Range cellule1
cellule1, cellule2
Resize rowSize, columnSize
Select aucun
Sheets index (ou sheetName)
Workbooks index (ou bookName)
End direction
CurrentRegion aucun
Les exemples de cet article utilisent les propriétés du tableau ci-après.

Propriété Usage
---------------------------------------------------------------------
ActiveSheet pour spécifier la feuille active
ActiveWorkbook pour spécifier le classeur actif
Columns.Count pour compter le nombre de colonnes de l'élément spécifié
Rows.Count pour compter le nombre de lignes de l'élément spécifié
Selection pour faire référence à la plage sélectionnée

1 : Comment sélectionner une cellule dans la feuille de calcul active

Pour sélectionner la cellule D5 dans la feuille de calcul active, vous pouvez utiliser l'un ou l'autre des exemples suivants :
ActiveSheet.Cells(5, 4).Select
- ou -
ActiveSheet.Range("D5").Select

2 : Comment sélectionner une cellule dans une autre feuille de calcul du même classeur

Pour sélectionner la cellule E6 dans une autre feuille de calcul du même classeur, vous pouvez utiliser l'un ou l'autre des exemples suivants :
Application.Goto ActiveWorkbook.Sheets("Sheet2").Cells(6, 5)

- ou -
Application.Goto (ActiveWorkbook.Sheets("Sheet2").Range("E6"))
Vous pouvez également activer la feuille de calcul, puis appliquer la méthode 1 ci-dessus pour sélectionner la cellule :
Sheets("Sheet2").Activate
ActiveSheet.Cells(6, 5).Select

3 : Comment sélectionner une cellule dans une feuille de calcul d'un autre classeur

Pour sélectionner la cellule F7 dans une feuille de calcul d'un autre classeur, vous pouvez utiliser l'un ou l'autre des exemples suivants :
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Cells(7, 6)
- ou -
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("F7")
Vous pouvez également activer la feuille de calcul, puis appliquer la méthode 1 ci-dessus pour sélectionner la cellule :
Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate
ActiveSheet.Cells(7, 6).Select

4 : Comment sélectionner une plage de cellules dans la feuille de calcul active

Pour sélectionner la plage C2:D10 dans la feuille de calcul active, vous pouvez utiliser l'un ou l'autre des exemples suivants :
ActiveSheet.Range(Cells(2, 3), Cells(10, 4)).Select
ActiveSheet.Range("C2:D10").Select
ActiveSheet.Range("C2", "D10").Select

5 : Comment sélectionner une plage de cellules dans une autre feuille de calcul du même classeur

Pour sélectionner la plage D3:E11 dans une autre feuille de calcul du même classeur, vous pouvez utiliser l'un ou l'autre des exemples suivants :
Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3:E11")
Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3", "E11")
Vous pouvez également activer la feuille de calcul, puis appliquer la méthode 4 ci-dessus pour sélectionner la plage :
Sheets("Sheet3").Activate
ActiveSheet.Range(Cells(3, 4), Cells(11, 5)).Select

6 : Comment sélectionner une plage de cellules dans une feuille de calcul d'un autre classeur

Pour sélectionner la plage E4:F12 dans une feuille de calcul d'un autre classeur, vous pouvez utiliser l'un ou l'autre des exemples suivants :
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4:F12")
Application.Goto _
Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4", "F12")
Vous pouvez également activer la feuille de calcul, puis appliquer la méthode 4 ci-dessus pour sélectionner la plage :
Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate
ActiveSheet.Range(Cells(4, 5), Cells(12, 6)).Select

7 : Comment sélectionner une plage nommée dans la feuille de calcul active

Pour sélectionner la plage nommée « Test » dans la feuille de calcul active, vous pouvez utiliser l'un ou l'autre des exemples suivants :
Range("Test").Select
Application.Goto "Test"

8 : Comment sélectionner une plage nommée dans une autre feuille de calcul du même classeur

Pour sélectionner la plage nommée « Test » dans une autre feuille de calcul du même classeur, vous pouvez utiliser l'exemple suivant :
Application.Goto Sheets("Sheet1").Range("Test")
Vous pouvez également activer la feuille de calcul, puis appliquer la méthode 7 ci-dessus pour sélectionner la plage nommée :
Sheets("Sheet1").Activate
Range("Test").Select

9 : Comment sélectionner une plage nommée dans une feuille de calcul d'un autre classeur

Pour sélectionner la plage nommée « Test » dans une feuille de calcul d'un autre classeur, vous pouvez utiliser l'exemple suivant :
Application.Goto _
Workbooks("BOOK2.XLS").Sheets("Sheet2").Range("Test")
Vous pouvez également activer la feuille de calcul, puis appliquer la méthode 7 ci-dessus pour sélectionner la plage nommée :
Workbooks("BOOK2.XLS").Sheets("Sheet2").Activate
Range("Test").Select

10 : Comment sélectionner une cellule relative par rapport à la cellule active

Pour sélectionner une cellule qui se trouve cinq lignes au-dessous et quatre colonnes à gauche de la cellule active, vous pouvez utiliser l'exemple suivant :
ActiveCell.Offset(5, -4).Select
Pour sélectionner une cellule qui se trouve deux lignes au-dessus et trois colonnes à droite de la cellule active, vous pouvez utiliser l'exemple suivant :
ActiveCell.Offset(-2, 3).Select
Remarque Une erreur se produit si vous essayez de sélectionner une cellule située « en dehors de la feuille de calcul ». Le premier exemple fourni plus haut retournera une erreur si la cellule active se trouve dans les colonnes A à D, car le déplacement de quatre colonnes à gauche placerait la cellule active sur une adresse de cellule non valide.

11 : Comment sélectionner une cellule relative par rapport à une autre cellule (qui n'est pas la cellule active)

Pour sélectionner une cellule qui se trouve cinq lignes au-dessous et quatre colonnes à droite de la cellule C7, vous pouvez utiliser l'un ou l'autre des exemples suivants :
ActiveSheet.Cells(7, 3).Offset(5, 4).Select
ActiveSheet.Range("C7").Offset(5, 4).Select

12 : Comment sélectionner une plage de cellules décalée par rapport à une plage définie

Pour sélectionner une plage de cellules qui est de la même taille que la plage nommée « Test », mais décalée de quatre lignes vers le bas et de trois colonnes vers la droite, vous pouvez utiliser l'exemple suivant :
ActiveSheet.Range("Test").Offset(4, 3).Select
Si la plage nommée se trouve dans une autre feuille de calcul (qui n'est pas la feuille de calcul active), activez d'abord cette feuille de calcul, puis sélectionnez la plage comme dans l'exemple suivant :
Sheets("Sheet3").Activate
ActiveSheet.Range("Test").Offset(4, 3).Select

13 : Comment sélectionner une plage spécifiée et redimensionner la sélection

Pour sélectionner la plage nommée « Database » puis étendre la sélection de cinq lignes, vous pouvez utiliser l'exemple suivant :
Range("Database").Select
Selection.Resize(Selection.Rows.Count + 5, _
Selection.Columns.Count).Select

14 : Comment sélectionner une plage spécifiée, la décaler, puis la redimensionner

Pour sélectionner une plage située quatre lignes au-dessous et trois colonnes à droite de la plage nommée « Database » et inclure deux lignes et une colonne de plus que la plage nommée, vous pouvez utiliser l'exemple suivant :
Range("Database").Select
Selection.Offset(4, 3).Resize(Selection.Rows.Count + 2, _
Selection.Columns.Count + 1).Select

15 : Comment sélectionner l'union d'au moins deux plages spécifiées

Pour sélectionner l'union (c'est-à-dire, la zone combinée) des deux plages nommées « Test » et « Sample », vous pouvez utiliser l'exemple suivant :
Application.Union(Range("Test"), Range("Sample")).Select
Remarque : les deux plages doivent figurer dans la même feuille active pour que cet exemple fonctionne. Notez également que la méthode Union ne fonctionne pas entre différentes feuilles de calcul. Par exemple, la ligne suivante fonctionne
Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet1!C3:D4"))
alors que celle-ci
Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet2!C3:D4"))
retourne le message d'erreur suivant :
Union method of application class failed (Échec de la méthode Union de la classe d'application)

16 : Comment sélectionner l'intersection d'au moins deux plages spécifiées

Pour sélectionner l'intersection des deux plages nommées « Test » et « Sample », vous pouvez utiliser l'exemple suivant :
Application.Intersect(Range("Test"), Range("Sample")).Select
Remarque : les deux plages doivent figurer dans la même feuille active pour que cet exemple fonctionne.



Les exemples 17 à 21 du présent article font référence à l'exemple de jeu de données ci-après. Chaque exemple indique la plage de cellules des données exemple qui serait sélectionnée.

A1 : Nom B1 : Ventes C1 : Quantité
A2 : a B2 : 10 € C2 : 5
A3 : b B3 : C3 : 10
A4 : c B4 : 10 € C4 : 5
A5 : B5 : C5 :
A6 : Total B6 : 20 € C6 : 20

17 : Comment sélectionner la dernière cellule d'une colonne de données contiguës

Pour sélectionner la dernière cellule d'une colonne de données contiguës, utilisez l'exemple suivant :
ActiveSheet.Range("a1").End(xlDown).Select
Lorsque ce code est utilisé avec la table fournie en exemple, la cellule A4 est sélectionnée.


18 : Comment sélectionner la cellule vide située au bas d'une colonne de données contiguës

Pour sélectionner la cellule au-dessous d'une plage de cellules contiguës, utilisez l'exemple suivant :
ActiveSheet.Range("a1").End(xlDown).Offset(1,0).Select
Lorsque ce code est utilisé avec la table fournie en exemple, la cellule A5 est sélectionnée.


19 : Comment sélectionner l'intégralité d'une plage de cellules contiguës dans une colonne

Pour sélectionner une plage de cellules contiguës dans une colonne, utilisez l'un des exemples suivants :
ActiveSheet.Range("a1", ActiveSheet.Range("a1").End(xlDown)).Select

- ou -
ActiveSheet.Range("a1:" & ActiveSheet.Range("a1"). _
End(xlDown).Address).Select
Lorsque ce code est utilisé avec la table fournie en exemple, les cellules A1 à A4 sont sélectionnées.

20 : Comment sélectionner l'intégralité d'une plage de cellules non contiguës dans une colonne

Pour sélectionner une plage de cellules non contiguës, utilisez l'un des exemples suivants :
ActiveSheet.Range("a1",ActiveSheet.Range("a65536").End(xlUp)).Select

- ou -
ActiveSheet.Range("a1:" & ActiveSheet.Range("a65536"). _
End(xlUp).Address).Select
Lorsque ce code est utilisé avec la table fournie en exemple, les cellules A1 à A6 sont sélectionnées.

21 : Comment sélectionner une plage rectangulaire de cellules

Pour sélectionner une plage rectangulaire de cellules autour d'une cellule, appliquez la méthode CurrentRegion. La plage sélectionnée par la méthode CurrentRegion est une zone délimitée par une association de lignes et de colonnes vides. L'exemple suivant illustre l'utilisation de la méthode CurrentRegion :
ActiveSheet.Range("a1").CurrentRegion.Select
Ce code permet de sélectionner les cellules A1 à C4. D'autres exemples permettant de sélectionner la même plage de cellules sont fournis ci-après :
ActiveSheet.Range("a1", _
ActiveSheet.Range("a1").End(xlDown).End(xlToRight)).Select

- ou -
ActiveSheet.Range("a1:" & _
ActiveSheet.Range("a1").End(xlDown).End(xlToRight).Address).Select
Dans certains cas, vous pouvez souhaiter sélectionner les cellules A1 à C6. Dans cet exemple, la méthode CurrentRegion ne fonctionnera pas à cause de la ligne vide sur la ligne 5. Les exemples suivants sélectionnent toutes les cellules :
lastCol = ActiveSheet.Range("a1").End(xlToRight).Column
lastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).Row
ActiveSheet.Range("a1", ActiveSheet.Cells(lastRow, lastCol)).Select

- ou -
lastCol = ActiveSheet.Range("a1").End(xlToRight).Column
lastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).Row
ActiveSheet.Range("a1:" & _
ActiveSheet.Cells(lastRow, lastCol).Address).Select

22. Comment sélectionner plusieurs colonnes non contiguës de longueur variable

Pour sélectionner plusieurs colonnes non contiguës de longueur variable, utilisez les exemples de table et de macro suivants :

A1 : 1 B1 : 1 C1 : 1 D1 : 1
A2 : 2 B2 : 2 C2 : 2 D2 : 2
A3 : 3 B3 : 3 C3 : 3 D3 : 3
A4 : B4 : 4 C4 : 4 D4 : 4
A5 : B5 : 5 C5 : 5 D5 :
A6 : B6 : C6 : 6 D6 :
StartRange = "A1"
EndRange = "C1"
Set a = Range(StartRange, Range(StartRange).End(xlDown))
Set b = Range(EndRange, Range(EndRange).End(xlDown))
Union(a,b).Select
Lorsque ce code est utilisé avec la table fournie en exemple, les cellules A1:A3 et C1:C6 sont sélectionnées.

REMARQUES CONCERNANT LES EXEMPLES

  • La propriété ActiveSheet peut généralement être omise, car elle est implicite si une feuille spécifique n'est pas nommée. Par exemple, au lieu de
    ActiveSheet.Range("D5").Select
    vous pouvez utiliser :
    Range("D5").Select
  • La propriété ActiveWorkbook peut également être généralement omise. Si aucun classeur spécifique n'est nommé, le classeur actif est implicite.
  • Lorsque vous appliquez la méthode Application.Goto, si vous voulez utiliser deux méthodes Cells dans la méthode Range alors que la plage spécifiée figure dans une autre feuille de calcul (qui n'est pas la feuille de calcul active), vous devez inclure l'objet Sheets à chaque fois. Par exemple :
    Application.Goto Sheets("Sheet1").Range( _
    Sheets("Sheet1").Range(Sheets("Sheet1").Cells(2, 3), _
    Sheets("Sheet1").Cells(4, 5)))
  • Pour les éléments qui figurent entre guillemets (par exemple, la plage nommée « Test »), vous pouvez également utiliser une variable dont la valeur est une chaîne de texte. Par exemple, au lieu de
    ActiveWorkbook.Sheets("Sheet1").Activate
    vous pouvez utiliser
    ActiveWorkbook.Sheets(myVar).Activate
    Où la valeur de myVar est « Sheet1 ».

Références


Pour plus d'informations sur l'utilisation de l'exemple de code présenté dans cet article, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :

290140 Comment faire pour exécuter un exemple de code d'un article de la Base de connaissances pour un programme Office XP

Propriétés

ID d'article : 291308 - Dernière mise à jour : 15 déc. 2016 - Révision : 1

Commentaires