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) :

excel last used row fonction

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