Vous êtes actuellement hors ligne, en attente de reconnexion à Internet.

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

Le support d'Office 2003 a pris fin

Microsoft a mis fin au support d'Office 2003 le 8 avril 2014. Cette modification a affecté vos mises à jour logicielles et options de sécurité. Découvrez les implications de ce changement à votre niveau et la marche à suivre pour rester protégé.

Plus d'informations
Microsoft fournit des 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           none   Cells              rowIndex, columnIndex   Application.Goto   reference, scroll   Offset             rowOffset, columnOffset   Range              cell1                      cell1, cell2   Resize             rowSize, columnSize   Select             none   Sheets             index (ou sheetName)   Workbooks          index (ou bookName)   End                direction   CurrentRegion      none				Les exemples de cet article utilisent les propriétés du tableau ci-après. <Formatting Type="FixedText"><![CDATA[   Propriété        Utilisation   ---------------------------------------------------------------------   ActiveSheet      pour indiquer la feuille active   ActiveWorkbook   pour indiquer le classeur actif   Columns.Count    pour compter le nombre de colonnes dans l'élément spécifié   Rows.Count       pour compter le nombre de lignes dans l'élément spécifié   Selection        pour faire référence à la plage sélectionnée				

1 : Procédure de sélection d'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 des exemples suivants :
ActiveSheet.Cells(5, 4).Select				
- ou -
ActiveSheet.Range("D5").Select				

2 : Procédure de sélection d'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 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").ActivateActiveSheet.Cells(6, 5).Select				

3 : Procédure de sélection d'une cellule dans une feuille de calcul d'un classeur différent

Pour sélectionner la cellule F7 dans une feuille de calcul d'un classeur différent, vous pouvez utiliser l'un 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").ActivateActiveSheet.Cells(7, 6).Select				

4 : Procédure de sélection d'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 des exemples suivants :
ActiveSheet.Range(Cells(2, 3), Cells(10, 4)).Select				
ActiveSheet.Range("C2:D10").Select				
ActiveSheet.Range("C2", "D10").Select				

5 : Procédure de sélection d'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 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").ActivateActiveSheet.Range(Cells(3, 4), Cells(11, 5)).Select				

6 : Procédure de sélection d'une plage de cellules dans une feuille de calcul d'un classeur différent

Pour sélectionner la plage E4:F12 dans une feuille de calcul d'un classeur différent, vous pouvez utiliser l'un 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 : Procédure de sélection d'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 des exemples suivants :
Range("Test").Select				
Application.Goto "Test"				

8 : Procédure de sélection d'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").ActivateRange("Test").Select				

9 : Procédure de sélection d'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").ActivateRange("Test").Select				

10 : Procédure de sélection d'une cellule relative à la cellule active

Pour sélectionner une cellule qui se trouve cinq lignes en 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 : Procédure de sélection d'une cellule relative à une autre cellule (qui n'est pas la cellule active)

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

12 : Procédure de sélection d'une plage de cellules décalée par rapport à une plage spécifiée

Pour sélectionner une plage de cellules dont la taille est identique à celle de la plage nommée « Test », mais qui est 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").ActivateActiveSheet.Range("Test").Offset(4, 3).Select				

13 : Procédure de sélection d'une plage spécifiée et de redimensionnement de la sélection

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

14 : Procédure de sélection, de décalage et de redimensionnement d'une plage

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

15 : Procédure de sélection de 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 « Exemple », 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 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 : Procédure de sélection de l'intersection d'au moins deux plages spécifiées

Pour sélectionner l'intersection des deux plages nommées « Test » et « Exemple », 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 d'ensemble de données ci-après. Chaque exemple indique la plage de cellules des données exemple qui seraient sélectionnées.
   A1 : Name    B1: Sales    C1: Quantity   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 : Procédure de sélection de 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 : Procédure de sélection de la cellule vide située en bas d'une colonne de données contiguës

Pour sélectionner la cellule en 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 : Procédure de sélection de 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 : Procédure de sélection de l'intégralité d'une plage de cellules non contiguës dans une colonne

Pour sélectionner une plage de cellules non contiguës dans une colonne, 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 : Procédure de sélection d'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 en raison de la ligne 5 qui est vide. Les exemples suivants permettent de sélectionner toutes ces cellules :
lastCol = ActiveSheet.Range("a1").End(xlToRight).ColumnlastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).RowActiveSheet.Range("a1", ActiveSheet.Cells(lastRow, lastCol)).Select				
    - ou -				
lastCol = ActiveSheet.Range("a1").End(xlToRight).ColumnlastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).RowActiveSheet.Range("a1:" & _   ActiveSheet.Cells(lastRow, lastCol).Address).Select				

22 : Procédure de sélection de 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
OfficeKBHowTo howto contiguous how to discontiguous non-contiguous nonadjacent non-adjacent  XL2003 XL2007 XL2010
Propriétés

ID d'article : 291308 - Dernière mise à jour : 01/31/2014 22:26:00 - Révision : 9.0

Microsoft Office Excel 2003, Microsoft Office Excel 2007, Microsoft Excel 2010

  • kbautomation kbmacro kbdtacode kbhowto kbprogramming KB291308
Commentaires