Déterminer la dernière cellule non vide

Avec des données contiguës, sans solution de continuité

Function DetermineDerniereLigne(Colonne As Integer)
    Dim ligneFin
    ligneFin = 1
    Do While Not IsEmpty(ActiveSheet.Cells(ligneFin, Colonne))
        ligneFin = ligneFin + 1
    Loop
    DetermineDerniereLigne = ligneFin - 1
End Function

On appelle cette fonction comme ceci :

'Determine la derniere ligne de la colonne A
    Dim DerniereLigne
    DerniereLigne = DetermineDerniereLigne(1)

Avec solutions de continuité

Function DetermineDerniereLigne(Colonne As Integer)
    Dim ligneFin
    ligneFin = Columns(Colonne).Find("*", , , , xlByColumns, xlPrevious).Row
    DetermineDerniereLigne = ligneFin
End Function

On utilise la fonction Find en partant de la fin (xlPrevious). Le caractère recherché (*) signifie : une suite de caractères de longueur non nulle (.+ en Perl).