Si vous développez des macros Excel, vous vous demandez peut-être comment sélectionner une cellule par rapport à celle dans laquelle vous vous trouvez. Par exemple, si vous utilisez Excel et que vous appuyez sur la touche Accueil, la cellule située à gauche de la ligne actuelle est sélectionnée. Malheureusement, utiliser l’enregistreur de macros pour enregistrer cela n’aide pas dans cette situation, car il enregistre la destination de l’action, au lieu de votre action réelle. Par exemple, si vous appuyez sur Accueil et que vous êtes sur la quatrième ligne d’une feuille de calcul, Excel n’enregistre pas l’action Accueil, mais enregistre à la place la destination, comme suit:

Range("A4").Select

C’est génial si vous voulez toujours aller à la cellule A4, mais terrible si vous voulez aller à la première cellule de la ligne sur laquelle vous vous trouvez.

Comme pour de nombreuses tâches dans VBA, il existe plusieurs façons d’aborder une solution à ce dilemme. La première méthode est en fait une variation de ce que l’enregistreur de macro renvoie, comme indiqué ci-dessus. Tout ce que vous avez à faire est de changer l’indicateur de ligne pour qu’il représente la ligne actuelle, comme dans l’exemple suivant:

Range("A" & (ActiveCell.Row)).Select

VBA détermine quelle est la ligne actuelle, la claque avec le « A »

désignateur et propose une référence de cellule qui fonctionne avec la méthode Range.

Une autre technique que vous pouvez utiliser consiste à faire fonctionner la propriété Cells, comme suit:

Cells(Application.ActiveCell.Row, 1).Select

Cette approche, bien sûr, peut être modifiée pour que vous sélectionniez réellement une cellule donnée dans la ligne actuelle. Tout ce que vous avez à faire est de changer la désignation de la colonne (1, dans l’exemple ci-dessus) en un nombre représentant la colonne souhaitée.

Une autre approche (qui produit le même résultat) consiste à utiliser l’objet Range en conjonction avec la propriété Cells, comme illustré ici:

Range(Cells(Selection.Row, 1).Address).Select

Selection.Row donne le numéro de ligne de la sélection actuelle. La propriété Address de la méthode Cells renvoie l’adresse d’une cellule particulière au format A $ 1 $. Cette adresse est ensuite utilisée comme paramètre pour l’objet Range et la cellule réelle est sélectionnée par la méthode Select.

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (2267) s’applique à Microsoft Excel 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:

link: / excelribbon-Selecting_a_Cell_in_the_Current_Row [Sélection d’une cellule dans la ligne actuelle].