Comment utiliser OFFSET avec l’objet range en VBA ?
En utilisant OFFSET avec l’objet plage, vous pouvez naviguer d’une cellule à l’autre dans la feuille de calcul et vous pouvez également sélectionner une cellule ou une plage. Il vous donne également accès aux propriétés et aux méthodes que vous avez avec l’objet de plage à utiliser, mais vous devez spécifier les arguments dans le OFFSET pour l’utiliser.
Utiliser OFFSET avec l’objet Range
- Spécifiez la plage à partir de laquelle vous souhaitez commencer.
- Entrez un point (.) pour obtenir une liste de propriétés et de méthodes.
- Sélectionnez la propriété offset et spécifiez les arguments (ligne et colonne).
- À la fin, sélectionnez la propriété à utiliser avec le décalage.
Sélectionnez une plage à l’aide de OFFSET
Vous pouvez également sélectionner une plage qui correspond au nombre de lignes et de colonnes éloignées d’une plage. Prenez la ligne de code ci-dessous, qui sélectionne une plage de deux cellules composée de cinq lignes vers le bas et de 3 colonnes vers la droite.
Range("A1:A2").Offset(3, 2).Select
En dehors de cela, vous pouvez également écrire du code pour sélectionner la plage en utilisant une taille personnalisée. Prenons un exemple du code suivant.
Range(Range("A1").Offset(1, 1), Range("A1").Offset(5, 2)).Select
Pour comprendre ce code, vous devez le diviser en trois parties.
Tout d’abord, dans cet objet de plage, vous avez la possibilité de spécifier la première cellule et la dernière de la plage.
Revenons maintenant à l’exemple :
- Dans la PREMIÈRE partie, vous avez utilisé l’objet plage pour faire référence à la cellule située une ligne vers le bas et une colonne à droite de la cellule A1.
- Dans la DEUXIÈME partie, vous avez utilisé l’objet range pour faire référence à la cellule située cinq lignes plus bas et deux colonnes à droite de la cellule A1.
- Dans la partie THRID, vous avez utilisé les cellules de la première et de la deuxième partie pour faire référence à une plage et la sélectionner.
Utiliser OFFSET avec ActiveCell
Vous pouvez également utiliser la cellule active au lieu d’utiliser une plage prédéfinie. Cela signifie que vous obtiendrez un décalage dynamique pour sélectionner une cellule naviguant à partir de la cellule active.
ActiveCell.Offset(5, 2).Select
La ligne de code ci-dessus sélectionnera la cellule qui se trouve cinq lignes vers le bas et deux colonnes à droite de la cellule active.
Utilisation de OFFSET avec ActiveCell pour sélectionner une plage
Utilisez le code suivant pour sélectionner une plage dans la cellule active.
Range(ActiveCell.Offset(1, 1), ActiveCell.Offset(5, 2)).Select
Pour comprendre le fonctionnement de ce code, assurez-vous de consulter cette explication .
Copier une plage à l’aide de OFFSET
Range(Range("A1").Offset(1, 1), Range("A1").Offset(5, 2)).Copy
Range(ActiveCell.Offset(1, 1), ActiveCell.Offset(5, 2)).Copy
Utilisation de la propriété Cells avec OFFSET
Vous pouvez également utiliser la propriété OFFSET avec la propriété CELLS. Considérez le code suivant.
Cells(1, 3).Offset(2, 3).Select
Le code ci-dessus fait d’abord référence à la cellule A1 (comme vous l’avez spécifié) avec la première ligne et la première colonne à l’aide de la propriété cells, puis utilise la propriété offset pour sélectionner la cellule qui se trouve deux lignes plus bas et comporte trois colonnes.