Re : Deplacement auto d'une cellule à une autre.
Bonsoir Icedarts,
Au tout début de la macro, il y a la ligne :
Private Sub Worksheet_Change(ByVal Target As Range)
Donc à chaque changement dans une cellule sur la feuille excel où se trouve cette macro, excel mémorise les coordonnées de la cellule en question dans "Target"
Lorsqu'en dessous on écrit :
-> Target.row = cela signifie qu'on veut récupérer le numéro de la ligne de la cellule modifiée
-> Target.column = cela signifie qu'on veut récupérer le numéro de la colonne de la cellule modifiée
-> Target.adress = cela signifie qu'on veut récupérer l'adresse complète de la cellule (mémorisé dans "Target" sous la forme
$J$10
...
Pour parler d'une cellule, il existe trois méthodes :
-> Range("A10") = tu en conviendras avec moi, la plus facile à comprendre. Mais lorsque la colonne ou ligne doit être modifiable au grès de la macro, c'est difficile pour certains (bien que possible).
-> Cells(10,1) = qui veut dire exactement la même chose : cellule ligne 10 - colonne 1 (donc A10
) Sous cette forme, il est très facile de mettre à la place des chiffres une variable et ainsi pouvoir modifier ces références au grès de la macro.
-> Offset(
NuméroLigne, NuméroColonne) = comme tu l'as trouvé tout seul, on part de la cellule précédement utilisé et on rajoute/soustrait au numéro de la ligne
le chiffre indiqué en rouge ci-dessus (idem pour la colonne).
Personnellement, je n'aime pas utiliser Offset, car la personne qui n'est pas plongé dans le code ne sait pas où l'on était avant et donc ne trouvera jamais où l'on veut aller. Car c'est bien gentil de dire, je descend de 2 lignes, mais par rapport à quel cellule??? Là, la macro est simple, on comprend vite, mais dans d'autres macro, il faut vraiment s'accrocher pour trouver!
Bref, oui tu avais raison
Bonne fin de soirée