Fonction VBA : lastUsedRow
La fonction VBA lastUsedRow renvoie le numéro de la dernière ligne utilisée de la feuille passée en argument.
Utilisation :
lastUsedRow(feuille)
Exemple d'utilisation (fonction proche de SOMME)
Addition de tous les chiffres dans sélection de l'utilisateur (en ignorant les lignes hors de la zone utilisée) :
Sub exemple()
Dim cellule As Range
somme = 0
derniereLigneUtilisee = lastUsedRow(ActiveSheet)
'Parcours des cellules de la sélection
For Each cellule In Selection
'Test de la ligne (si hors de la zone utilisée, inutile de continuer)
If cellule.Row > derniereLigneUtilisee Then Exit For
'Addition
If IsNumeric(cellule) Then somme = somme + cellule
Next
'Résultat
MsgBox somme
End Sub
En ajoutant le test de la ligne dans la boucle, les lignes non utilisées de la feuille sont ignorées.
Ce type de test peut faire une différence très importante en terme de performances notamment lorsque des colonnes entières sont sélectionnées (sans ce test, il aurait fallu parcourir 1'048'576 lignes au lieu de 8) :

Remarque : cette fonction nécessite l'installation du pack de fonctions XLP (un add-in gratuit pour Excel qui ajoute 92 nouvelles fonctions).