VBA - Dernière ligne non vide [Toutes versions]
Entre les versions 2003 et 2007, le nombre de lignes que peut atteindre une feuille excel a considérablement évolué. De ce fait, les codes VBA tels que :
- versions < 2007 :
Dim DernLigne As Long
DernLigne = Range("A65536").End(xlUp).Row
- depuis 2007 :
Dim DernLigne As Long
DernLigne = Range("A1048576").End(xlUp).Row
empêchent la portabilité de votre classeur d'une version vers l'autre.
Dans tous les cas, il convient dorénavant d'écrire :
[toutes versions]
Dim DernLigne As Long
DernLigne = Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row
ou :
Dim DernLigne As Long
DernLigne = Range("A" & Rows.Count).End(xlUp).Row
Vous serez également confrontés un jour au même problème en ce qui concerne les colonnes... Vous pourrez utiliser ce code (donné ici à titre d'exemple, il en existe d'autres syntaxes) :
Dim DernCol As Integer
DernCol = Cells(1, Cells.Columns.Count).End(xlToLeft).Column
Les codes donnés ici, concernent la dernière ligne non vide de la colonne A (Columns
(1).Find("*", , , , xlByColumns, xlPrevious).Row , Range(
"A" & Rows.Count).End(xlUp).Row) et la dernière colonne dont la 1ère ligne est non vide (Cells(
1, Cells.Columns.Count).End(xlToLeft).Column). Vous pouvez bien entendu les adapter en changeant l'élément identifié en gras.
Publié par
pijaku -
Dernière mise à jour le 12 juillet 2011 à 16:47 par pijaku