Explicitation de formule

bonsoir

quelqu'un peut m'expliquer littéralement ceci? :

Dim i as integer

i = Sheets("clients").Range("e65536").End(xlUp).Row + 1

Range("e" & i).Value = TextBox4

ce que veux dire End(xlup).row+1 et range("e"& i) ....

merci pour votre aide

Bonsoir,

L'instruction Range.End(Xlup).Row permet de sélectionner la dernière ligne non vide de votre colonne (ici e). Le +1 est donc la première ligne vide de cette colonne. (

Range("e"& i) permet donc de sélectionner la cellule se situant en colonne "e" et à la ligne"i" (soit la première ligne vide)

@+

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

merci pour tes lumiéres

San ku kai, san ku kai, c'est la bataille.....

Sympa le pseudo, que de souvenirs

Cordialement,

Rechercher des sujets similaires à "explicitation formule"