OVH Cloud OVH Cloud

Cells vs Offset

3 réponses
Avatar
Kamel
Bonjour à tous,

quelqu'un peut il m'eclairer sur la différence en tre ces 2 écritures :

Range("a1").Offset(1,2)
Range("a1").Cells(1,2) ???

Merci !

Kamel

3 réponses

Avatar
Daniel
Bonjour.
Cells(1, 2) fait référence à la cellule B1; Offset est un décalage de 1
ligne et 2 colonnes par rapport au range spécifié devant (soit C2 dans ton
exemple).
Cordialement.
Daniel
"Kamel" a écrit dans le message de news:

Bonjour à tous,

quelqu'un peut il m'eclairer sur la différence en tre ces 2 écritures :

Range("a1").Offset(1,2)
Range("a1").Cells(1,2) ???

Merci !

Kamel





Avatar
Daniel
Complément :
Range("a1").Cells(1,2) fait référence à B1 : A1, ligne1 soit 1, colonne 2,
soit B.
Pour être clair, Range("a1").Cells(1,2) = Range("a1").Offset(0,1)
Daniel
"Daniel" a écrit dans le message de news:
%
Bonjour.
Cells(1, 2) fait référence à la cellule B1; Offset est un décalage de 1
ligne et 2 colonnes par rapport au range spécifié devant (soit C2 dans ton
exemple).
Cordialement.
Daniel
"Kamel" a écrit dans le message de news:

Bonjour à tous,

quelqu'un peut il m'eclairer sur la différence en tre ces 2 écritures :

Range("a1").Offset(1,2)
Range("a1").Cells(1,2) ???

Merci !

Kamel









Avatar
anonymousA
bonjour,

c'est une affaire de référence et de collection de cellules en même temps.

pour mieux se rendre compte du phénomène, il vaut mieux prendre une
autre cellule que A1. Prenons D8 p.e

si tu écris

si tu écris Range("d8").offset(0, 0).Interior.ColorIndex = 8,, la
cellule qui sera coloriée est la cellule D8 elle-même car il ne se
produit aucun décalage.

si tu écris
Range("d8").Cells(0, 0).Interior.ColorIndex = 8, la cellule coloriée
sera la cellule C7. Dans ce cas, VBA considère que la référence est de
base 0 et donc logiquement décale d'une unité vers le haut et vers la
gauche la référence de cellule.

De +, dans le cas d'une plage de cellules , si tu écris
Range("d8:e9").offset(1, 0).Interior.ColorIndex = 8, c'est toute la
plage décalée d'une ligne ( donc la plage d9:e10 ) qui sera coloriée
alors que si tu écris Range("d8:e9").cells(1, 0).Interior.ColorIndex =
8,c'est seulement c8 qui sera coloriée

A+

Bonjour à tous,

quelqu'un peut il m'eclairer sur la différence en tre ces 2 écritures :

Range("a1").Offset(1,2)
Range("a1").Cells(1,2) ???

Merci !

Kamel