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

Traductions disponibles Traductions disponibles
Numéro d'article: 291308 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

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").Activate
ActiveSheet.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").Activate
ActiveSheet.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").Activate
ActiveSheet.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").Activate
Range("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").Activate
Range("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").Activate
ActiveSheet.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").Select
Selection.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").Select
Selection.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).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 : 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

Propriétés

Numéro d'article: 291308 - Dernière mise à jour: vendredi 31 janvier 2014 - Version: 9.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Office Excel 2003
  • Microsoft Office Excel 2007
  • Microsoft Excel 2010
Mots-clés : 
kbautomation kbmacro kbdtacode kbhowto kbprogramming KB291308
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com