Avoir la dernière ligne d’une colonne donnée dans Excel se fait facilement avec une fonction définie par l’utilisateur en VBA :
.
Visual Basic
.
1
2
. 3
4
5
|
Fonction LastRow(wsName As String, Optional columnToCheck As Long = 1) As Long
Dim ws As Worksheet
Set ws = Worksheets(wsName)
LastRow = ws.Cells(ws.Rows.Count, columnToCheck).End(xlUp).Row
Fin de fonction
|
Il existe deux autres formules, qui permettraient d’obtenir la dernière cellule utilisée dans une ligne donnée, selon qu’il s’agit d’un numérique ou d’une chaîne de caractères :
.
Visual Basic
1
2
|
=IFERROR(MATCH(E1+99,A :A),0)
=IFERROR(MATCH(« zzz »,A :A),0)
|
Le premier obtient la dernière ligne numérique utilisée et le second renvoie la dernière ligne non numérique utilisée. Pour la dernière ligne numérique/non numérique utilisée, on pourrait utiliser une union de celles-ci:
.
Visual Basic
1
|
=MAX(IFERROR(MATCH(E1+99,A:A),0),IFERROR(MATCH(« zzz »,A:A),0))
|
Cependant, il y a un petit problème – lorsque la dernière cellule est une erreur, la formule MAX() ne retourne pas la dernière. Dans l’exemple ci-dessous, elle renvoie 6 et non 7 :
Donc, les quatre formules ultimes, qui fonctionnent toujours pour les dernières « choses » sont les suivantes :
Pour obtenir les lignes/colonnes:
Dernière ligne de la colonne A
.
Visual Basic
1
|
=IFERROR(LOOKUP(2,1/(NOT(ISBLANK(A :A))),ROW(A:A)),0)
|
Dernière colonne de la première ligne
.
Visual Basic
1
|
=IFERROR(LOOKUP(2,1/(NOT(ISBLANK(1 :1))),COLUMN(1 :1)),0)
|
Pour obtenir les valeurs
Valeur de la dernière ligne de la colonne A
Visual Basic
1
|
=LOOKUP(2,1/(NOT(ISBLANK(A :A)),A:A)
|
Valeur de la dernière colonne de la première ligne
Visual Basic
1
|
=LOOKUP(2,1/(NOT(ISBLANK(1 :1))),1 :1)
|
GitHub dernières choses
.