Explication du Code .End(xlUP) - SVP

fleurdasie

XLDnaute Nouveau
Bonjour,

Pourriez-vous me dire quelle est la différence entre ces deux codes?
J'en suis sûre que c'est la même mais je ne comprends pas le (2) du premier code.

Sheets("1").[D65536].End(xlUp)(2).PasteSpecial xlValues

et

Sheets("1").[D65536].End(xlUp).Offset(1,0).PasteSpecial xlValues

Je vous remercie!
 

JNP

XLDnaute Barbatruc
Re : Explication du Code .End(xlUP) - SVP

Bonjour Fleurdasie :),
Pour moi, ce serait une hérésie et je n'aurais même pas pensé que ça fonctionne :confused:...
un range avec un indice derrière est en principe la position dans la matrice, mais le Range étant une seule cellule, l'indice 2 devrait renvoyer une erreur puisqu'il n'y a pas de deuxième cellule, ce qui n'est pas le cas :rolleyes:...
Donc ça sélectionne la cellule en dessous de celle renvoyée par End(xlUp).
Alors que la deuxième, beaucoup plus logique, utilises OffSet (descendre d'une ligne, pas de changement de colonne) :p.
Voilà, j'espère que c'est plus clair :cool:
 

Gorfael

XLDnaute Barbatruc
Re : Explication du Code .End(xlUP) - SVP

Salut fleurdasie et le forum
Sheets("1").[D65536].End(xlUp)(2).PasteSpecial xlValues
Sheets("1").[D65536].End(xlUp).Offset(1,0).PasteSpecial xlValues
Les deux formule signifient la même chose. Mais un extrait d'un code...
Coller (.PasteSpecial) la/les valeur(s) (xlValues) de ce qui est dans le presse-papier dans la feuille de nom d'onglet "1" à partir de la cellule trouvée en partant de la ligne 65536 dans la colonne D ([D65536] et en cherchant le premier changement vide/non-vide (.End) en remontant (xlup), en décalant d'une ligne et de 0 colonne ((2) ou Offset(1,0)).

En plus clair : coller les valeurs du presse-papier à partir de la cellule suivant la dernière cellule de D non vide de la feuille 1.
Ne connaissant rien d'autre que le sujet, 2 remarques :
- Il ne faut pas confondre Sheets("1") feuille de nom d'onglet 1 et Sheets(1) feuille d'indice 1, le premier onglet
- Jusqu'à la version 2007, les feuilles avaient 2^16=65536 lignes. depuis, elles ont une autre limite. La formule, aujourd'hui sera plutôt :
Code:
Sheets("1").cells(Rows.count,"D").End(xlUp).Offset(1,0).PasteSpecial xlValues
ou une de ses variantes : la cellule du nombre de lignes de la feuille en D : la dernière cellule de D
A+
 
Dernière édition:

Habitude

XLDnaute Accro
Re : Explication du Code .End(xlUP) - SVP

Bonjour

Dans un tableau excel tu peux te déplacer avec la touche Fin et les flèches

Fin, ensuite fleche droite, te déplace vers la derniere cellule utilisé a droite.
Fin, ensuite fleche bas, te déplace vers la derniere cellule utilise en bas.

Bref, ce code simule les touches
End() pour Fin
Et entre parenthèse tu indique la direction
xlup
xlDown
xltoleft
xltoright

[D65536] te donne l'adresse de départ
Peut être remplaer par Range("D65536")
 

Discussions similaires

Statistiques des forums

Discussions
312 392
Messages
2 087 954
Membres
103 686
dernier inscrit
maykrem