Détermination de la dernière ligne REELLE d'une colonne Excel

Contenu du snippet

Le but de ce code :
Déterminer la dernière ligne remplie, masquée ou non, d'une colonne, quel que soit le nombre de plages masquées ou de lignes vides présentes.

Code de la fonction :
Private Function derlig_reelle(plage As Range) As Long
   'cas d'absence de données dans la plage à traiter :
   If WorksheetFunction.CountA(plage) = 0 Then derlig_reelle = plage.Cells(1, 1).Row: Exit Function
   'dans tous les autres cas :
   derlig_reelle = plage.Find("*", , , , , xlPrevious).Row
End Function


Avec ce code, vous pourrez déterminer, non seulement la dernière ligne réelle d'une colonne, qu'elle que soit la configuration de vos données (lignes vides et/ou masquées), mais également d'une plage de cellules ou même d'une feuille entière.
Ce code est fonctionnel même en cas d'insertion ou de suppression de lignes, contrairement à la méthode SpecialCells (Cells.SpecialCells(xlCellTypeLastCell) qui nécessite une sauvegarde du classeur dans ces cas.

Exemples d'utilisation :
'Dernière ligne réelle d'une colonne :
MsgBox derlig_reelle(Worksheets("Feuil1").Columns(1))
MsgBox derlig_reelle(Worksheets("Feuil1").Columns("A"))
MsgBox derlig_reelle(Worksheets("Feuil2").Range("B:B"))
'Dernière ligne réelle d'une plage de cellules (fonctionne même si la dernière ligne est située en colonne C)
MsgBox derlig_reelle(Worksheets("Feuil1").Range("A10:G153"))
'Dernière ligne réelle d'une feuille
MsgBox derlig_reelle(Sheets("Feuil3").Cells)

A voir également