OVH Cloud OVH Cloud

Déterminer le dernier numéro de ligne

2 réponses
Avatar
DesseJ
Bonjour =E0 tous,

Mes meilleurs voeux =E0 toutes les personnes sympathiques du forum, avec
la sant=E9 surtout. Et merci encore aux pros excelliens de partager leur
savoir.

Apr=E8s avoir =E9tudi=E9 les formules matricielles sur le site de Laurent
Longres, j'ai essay=E9 de d=E9terminer le num=E9ro de ligne de la
derni=E8re information saisie dans une colonne, uniquement par formule.

Avec la formule suivante que j'utilise dans une zone nomm=E9e, je
d=E9termine le num=E9ro de ligne en colonne C o=F9 se trouve la derni=E8re
information saisie :
=3DMAX(SI(Feuil2!$C$1:$C$65536<>"";LIGNE(INDIRECT("1:65536"))))

Ce num=E9ro de ligne est ensuite utilis=E9 pour d=E9terminer la plage
dynamique sur laquelle je fais des index/equiv (avec les colonnes
adjacentes) : =3DDECALER(Feuil2!$C$3;;;Combien-2)
(malheureusement, certaines cellules de la colonne C ne sont pas
renseign=E9es).

Bien que cela fonctionne, le temps de traitement est =E9videmment trop
long, formule matricielle (sur 65536 cellules !)oblige.

Est-il possible sans VBA d'optimiser la recherche du num=E9ro de ligne,
ou une fois de plus je complique la t=E2che alors qu'il y a plus simple
?

Merci d'avance
Steph D.

2 réponses

Avatar
michdenis
Bonjour DesseJ,

Tu peux utiliser une fonction de ce type dans un module standard :

Function LR(Cell As Range)
LR = Cells(65536, Cell.Column).End(xlUp).Row
End Function

et dans ta cellule : =LR(E:E)

P.S. J'Utilise la référence de la colonnne complète pour permettre
à la fonction de mettre à jour le résultat si tu ajoutes une donnée
à la colonne E:E.


Salutations!




"DesseJ" a écrit dans le message de news:
Bonjour à tous,

Mes meilleurs voeux à toutes les personnes sympathiques du forum, avec
la santé surtout. Et merci encore aux pros excelliens de partager leur
savoir.

Après avoir étudié les formules matricielles sur le site de Laurent
Longres, j'ai essayé de déterminer le numéro de ligne de la
dernière information saisie dans une colonne, uniquement par formule.

Avec la formule suivante que j'utilise dans une zone nommée, je
détermine le numéro de ligne en colonne C où se trouve la dernière
information saisie :
=MAX(SI(Feuil2!$C$1:$C$65536<>"";LIGNE(INDIRECT("1:65536"))))

Ce numéro de ligne est ensuite utilisé pour déterminer la plage
dynamique sur laquelle je fais des index/equiv (avec les colonnes
adjacentes) : ÞCALER(Feuil2!$C$3;;;Combien-2)
(malheureusement, certaines cellules de la colonne C ne sont pas
renseignées).

Bien que cela fonctionne, le temps de traitement est évidemment trop
long, formule matricielle (sur 65536 cellules !)oblige.

Est-il possible sans VBA d'optimiser la recherche du numéro de ligne,
ou une fois de plus je complique la tâche alors qu'il y a plus simple
?

Merci d'avance
Steph D.
Avatar
DesseJ
Bonjour,

Merci Michdenis, je cherchais à réaliser le résultat uniquement sur
Excel sans VBA, mais ta fonction me sera très utile dans d'autres
classeurs ;o)))

Bonne journée
Steph D.