Bonjour sankoukai, LORIS01,
Juste un petit complément : le nombre 65536 est le n° de ligne maximum pour un fichier Excel 2003 (ou version antérieure) ; à partir d'Excel 2007, le n° de ligne maximum est 1048576, donc tu pourrais mettre :
i = Sheets("clients").Range("E1048576").End(xlUp).Row + 1
mais tu verras souvent une de ces 3 écritures :
i = Sheets("clients").Range("E" & Rows.Count).End(xlUp).Row + 1
i = Sheets("clients").Cells(Rows.Count, "E").End(xlUp).Row + 1
i = Sheets("clients").Cells(Rows.Count, 5).End(xlUp).Row + 1
Rows.Count retourne le nombre total de lignes, donc le n° de ligne maximum (quelle que soit la version d'Excel) ; donc si tu convertis ton fichier .xlsm en .xls pour le passer à quelqu'un qui a Excel 2003, le code VBA marchera sans avoir à faire de modification.
J'ai préféré indiquer cela car tu as Excel 2013 ; il est fort peu probable que le nombre de lignes réellement utilisées par ton tableau dépasse 65536 lignes, mais si oui, l'instruction avec Range("E65536") ne marcherait plus !
dhany