Articles

Dernière ligne utilisée (dernière colonne utilisée) dans Excel avec une formule (sans VBA)

Posted on

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 :

lastRow.vb

.

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 :

Formules.vb

.

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:

Formule.vb

.

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

LastRow.vb

.

Visual Basic

1
=IFERROR(LOOKUP(2,1/(NOT(ISBLANK(A :A))),ROW(A:A)),0)

Dernière colonne de la première ligne

LastColumn.vb

.

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

LastUsedRow.vb

Visual Basic

1
=LOOKUP(2,1/(NOT(ISBLANK(A :A)),A:A)

Valeur de la dernière colonne de la première ligne

LastColumnValue.vb

Visual Basic

1
=LOOKUP(2,1/(NOT(ISBLANK(1 :1))),1 :1)

GitHub dernières choses

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *