Bonjour,
Le camarade Sylvanu ne semblant pas être présent, je me permet de répondre en attendant sa réponse.
Fin = Range("A65500").End(xlUp).Row : pourquoi vous avez choisi Range("A65500") ?
.Range("H65500").End(xlUp).Row : pourquoi vous avez choisi .Range("H65500") ?
.Range("H" & DL & ":K" & DL) : pourquoi il y a des &DL ?
Autrefois
(avant Excel 2007) une feuille Excel était limitée à
65 536 lignes, donc souvent programmeurs utilisaient 65000 ou 65500 pour spécifier de partir du bas de la feuille.
Depuis Excel 2007 la limite est de
1 048 576 lignes, peut-être que demain ce sera encore plus.
Donc pour être sûr de partir de la dernière ligne de la feuille, tu peux utiliser
Rows.Count (nombre de lignes de la feuille).
Fin = Range("A" & Rows.Count).End(xlUp).Row
- on part de la dernière cellule de la colonne A de la feuille (
Range("A" & Rows.Count)),
- on remonte dans la colonne jusqu'à rencontrer une cellule non vide (
End(xlUp)),
- on récupère le numéro de la ligne par rapport à la feuille (
.row),
- on l'affecte à la variable Fin (
Fin=).
C'est le même principe pour la variable
DL qui récupère le numéro de la ligne de la première cellule non vide rencontrée en partant du bas de la feuille et en remontant, dans la colonne H.
Cela doit correspondre à la dernière cellule non vide de la colonne H.
Tu remarqueras qu'ici on ajoute 1, pour avoir le numéro de la ligne suivante, ce qu'on appelle souvent
(un peu à tord) "la première ligne vide".
Dans
.Range("H" & DL), le
& servant à concaténer des chaînes de caractères et Excel remplaçant
DL par sa valeur, si
DL vaut 32 c'est comme si on avait écrit
.Range("H32").