Compréhension de code

cs_Liro Messages postés 159 Date d'inscription jeudi 7 septembre 2006 Statut Membre Dernière intervention 30 septembre 2011 - 5 déc. 2009 à 15:23
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 5 déc. 2009 à 15:34
Bonjour,

Je voudrais comprendre cette partie de code:

    Selection.EntireRow.Copy _
     Destination:=Worksheets(SNames(2)).Cells(65500, 5).End(xlUp).Offset(1, -4)
    Selection.EntireRow.Delete


Si j'ai bien compris:
- on sélectionne toute la ligne de la sélection (ou les lignes)
- on copie dans la feuille SNames(2), à la dernière ligne +1 et 4 cellules avant(?) C'est bien ça?

Je ne comprends pas vraiment l'offset. Quel est la colonne de référence pour le End(xlUp)??

Merci de votre aide.

1 réponse

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
5 déc. 2009 à 15:34
Salut
"Cells(65500, 5)" va pointer vers la cellule de la colonne 5 et de la ligne 65500, c'est à dire le maxi que peut accepter Excel (sauf version 2007)
".End(xlUp)" va remonter (Up) sur la dernière cellule non vide.
La colonne est toujours la 5.
En utilisant .Offset derrière, tu peux désigner une autre cellule, proche de celle sélectionnée, et qui, relativement, se trouve 1 ligne après et 4 colonnes avant.
Si Cells(65500, 5).End(xlUp) t'amène en ligne 32 et colonne 5, la cellule pointée sera en ligne 33, colonne 1.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Rejoignez-nous