Astuce VBA : dernière ligne d'un tableau

Il arrive fréquemment de devoir insérer des données à la suite d'un tableau sur une feuille Excel, et pour faire cela, vous devez connaître le numéro de la première ligne disponible de ce tableau.

La dernière ligne non vide d'un tableau s'obtient à l'aide de :

Cells(Rows.Count, colonne).End(xlUp).Row

Première cellule vide à la fin de la colonne A

Pour déterminer quelle est la dernière cellule non vide d'une colonne, utilisez le code ci-dessus et remplacez "colonne" par 1 (pour la colonne A dans cet exemple) :

Sub exemple()

    derniereLigne = Cells(Rows.Count, 1).End(xlUp).Row
    
    MsgBox derniereLigne

End Sub

Vous obtenez alors le numéro de la dernière ligne non vide de la colonne A :

excel vba calculer derniere ligne

Pour obtenir le numéro de la première ligne vide, ajoutez simplement 1 au résultat :

Sub exemple()

    derniereLigne = Cells(Rows.Count, 1).End(xlUp).Row + 1
    
    MsgBox derniereLigne

End Sub

Vous obtenez cette fois-ci le numéro de la première ligne vide à la suite de la colonne A :

excel vba calculer premiere ligne vide derniere
Pour résumer son fonctionnement, la recherche démarre de la dernière ligne de la feuille (Rows.Count) puis remonte (xlUp) jusqu'à trouver une cellule non vide.

Première cellule non vide en fonction de la lettre de la colonne

Si vous disposez d'une lettre au lieu d'un numéro de colonne, utilisez simplement Range au lieu de Cells :

Sub exemple()

    derniereLigne = Range("A" & Rows.Count).End(xlUp).Row + 1
    
    MsgBox derniereLigne

End Sub
excel vba calculer premiere ligne vide derniere

Pack de fonctions

Si vous êtes un utilisateur du pack de fonctions (gratuit) mis à disposition sur ce site, vous pouvez utiliser la fonction lastRow pour faire ce même travail :

derniereLigne = lastRow(1) + 1

Ou avec une lettre :

derniereLigne = lastRow("A") + 1