VBA – ActiveCell Offset

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

David Gagnon

Last updated on mai 25, 2023

Ce tutoriel montre comment utiliser le décalage de cellule active dans VBA.

ActiveCell est une propriété de VBA qui représente l’adresse de la cellule active dans votre feuille de calcul. Si le curseur est positionné dans la cellule A1, la propriété ActiveCell de VBA renverra l’adresse de la cellule « A1 ». Un certain nombre de propriétés et de méthodes sont liées à Activecell. Dans cet article, nous nous concentrons sur la méthode ActiveCell.Offset.

Propriétés et Méthodes de ActiveCell.Offset

ActiveCell.Offset possède un certain nombre de propriétés et de méthodes qui peuvent être programmées avec VBA. Pour visualiser les propriétés et méthodes disponibles, tapez l’instruction suivante dans une procédure, comme indiqué ci-dessous, et appuyez sur la touche point du clavier pour afficher une liste déroulante.

VBA ActiveCell Offset Methods

Les méthodes sont représentées par l’icône de méthode verte et les propriétés par l’icône de petite main. Les propriétés et les méthodes de la méthode ActiveCell.Offset sont les mêmes que celles de la méthode ActiveCell.

Syntaxe de ActiveCell.Offset

La syntaxe de ActiveCell.Offset est la suivante

VBA ActiveCell Offset Syntax

où RowOffset et ColumnOffset représentent le nombre de lignes à décaler (nombres positifs pour le bas, nombres négatifs pour le haut) et le nombre de colonnes que vous souhaitez décaler (nombres positifs décalés vers la droite, nombres négatifs vers la gauche).

ActiveCell.Offset.Select

La méthode ActiveCell.Offset.Select est la méthode la plus couramment utilisée de la méthode ActiveCell.Offset. Elle vous permet de vous déplacer vers une autre cellule de votre feuille de calcul. Vous pouvez utiliser cette méthode pour vous déplacer d’une colonne à l’autre ou d’une ligne à l’autre de votre feuille de calcul.

Pour descendre d’une ligne tout en restant dans la même colonne :

Activecell.Offset(1,0).Select

Pour se déplacer d’une colonne à l’autre, tout en restant dans la même ligne :

Activecell.Offset (0,1).Select

Pour descendre d’une ligne et traverser une colonne :

Activecell.Offset (1,1).Select

Pour se déplacer vers le haut d’une ligne :

Activecell.Offset(-1,0).Select

Pour se déplacer vers la gauche d’une colonne :

Activecell.Offset(0,-1).Select

Dans la procédure ci-dessous, nous parcourons en boucle une plage de cellules et nous nous déplaçons d’une ligne vers le bas et d’une colonne vers le haut au cours de la boucle:

Sub ActiveCellTest()
  Dim x As Integer
  Range("A1").Select
  For x = 1 To 10
   ActiveCell = x
   ActiveCell.Offset(1, 1).Select
  Next x
End Sub

Le résultat est illustré dans le graphique ci-dessous :

VBA ActiveCell_Loop

La boucle place la valeur de i (1-10) dans la cellule active, puis utilise la propriété Activecell.Offset pour descendre d’une ligne et traverser une colonne vers la droite – en répétant cette boucle 10 fois.

Utilisation de l’objet Range avec la Sélection Activecell.Offset

L’utilisation de l’objet Range avec la cellule active peut parfois prêter à confusion.

Considérons la procédure suivante :

Sub ActiveCellOffsetRange()
  Range("B1:B10").Select
  ActiveCell.Offset(1, 1).Range("A1").Select
End Sub

Avec ActiveCell.Offset(1,1).Range(« A1 »), le Range(« A1 ») a été spécifié. Toutefois, cela ne signifie pas que la cellule A1 de la feuille sera sélectionnée. Comme nous avons spécifié la Plage(« B1:B10 »), la cellule A1 de cette plage est en fait la cellule B1 du classeur. Par conséquent, la cellule sera décalée d’une ligne et d’une colonne par rapport à la cellule B1 et NON par rapport à la cellule A1.

VBA ActiveCell Offset Range

Par conséquent, la plage (« A1 ») n’est pas nécessaire dans ce cas, car la macro fonctionnera de la même manière avec ou sans celle-ci.

Alternatives à ActiveCell

Au lieu d’utiliser ActiveCell avec la méthode Offset, nous pouvons également utiliser l’objet Range avec la méthode Offset.

Sub RangeOffset() 
 Range("B1").Offset(0, 1).Select
End Sub

La procédure ci-dessus permet de sélectionner la cellule C1 de la feuille de calcul.

vba-free-addin

Module Complémentaire d'Exemples de Code VBA

Accédez facilement à tous les exemples disponibles sur le site.

Naviguez simplement dans le menu, cliquez, et le code sera inséré directement dans votre module. Module complémentaire .xlam.

(Aucune installation requise!)

Téléchargement gratuit

Retour aux exemples de code VBA