Récupérer la dernière valeur d'une plage

Bonjour,

J'ai trouvé une super formule sur internet pour récupérer la dernière cellule non vide dans une plage :

{=MAX( (a1:a20<>"")* LIGNE(a1:a20))}.

J'aimerais faire la même opération sur une plage non définie à l'avance. J'ai donc essayé ça : (entre autres essais ! )

{=MAX( (INDIRECT("$A$1:$A$"&MAX($A:$A)<>""))* LIGNE(INDIRECT("$A$1:$A$"&MAX($A:$A))))}

Mais, pas de chance cette formule s'entête à m'envoyer un #REF...pourtant avec l'audit de formule la partie indirect semble bonne puisqu'il m'indique bien la bonne référence à la deuxième étape mais ensuite elle se transforme en #REF.

SI vous avez une idée...je vous remercie bien d'avance;

Bonjour

Ta formule fonctionnera peut-être si tu utilises un champ qui ne soit pas une colonne entière (remplacer A:A par A1:A65000 par exemple)

ou toujours en matricielle

=INDEX(A1:A65000;MAX(NON(ESTVIDE(A1:A65000))*LIGNE(A1:A65000)))

Cordialement

Merci pour ta réponse rapide.

J'essaie donc :

=MAX((INDIRECT("$A$1:$A$"&MAX($A$1:$A$65000)<>""))* LIGNE(INDIRECT("$A$1:$A$"&MAX($A$1:$A$65000))))

Mais malheureusement ça ne marche pas mieux.

J'ai cependant un truc bizarre :

Quand j'audite la formule, mon :

INDIRECT("$A$1:$A$"&MAX($A$1:$A$65000)

se transforme en INDIRECT("$A$1;$A$149"<>"") puis passe à VRAI à l'étape suivante.

Est-ce normal selon vous ce point virgule (en gras) qui remplace les deux points ?

Bonsoir Gauguin

Tout d'abord j'ai eu un gros doute sur ta formule Internet, je l'ai donc essayé et elle ne marche pas.

Et si tu essayais tout simplement : ="A"&NBVAL(A1:A65000) n'importe où en dehors de la colonne A évidemment ...

J'en profite pour te demander comment on fait pour contrôler des formules ?

Cordialement.

Bonsoir

Comme te l'a dit Amadeus, utilise les champs :

=MAX( (A1:A65000<>"")* LIGNE(A1:A65000))

Cela renverra le numéro de la dernière ligne non vide.

A valider avec CTRL+MAJ+ENTREE

Amicalement

Nad

Bonsoir,

Merci pour vos réponses.

Pour jp06 : La formule que j'ai récupéré marche bien..pour info je te joins un classeur.

https://www.excel-pratique.com/~files/doc2/xlprat.xls

Sinon, en effet, le code

=MAX( (A1:A65000<>"")* LIGNE(A1:A65000))

marche bien.

Sinon pour comprendre, savez-vous d'où vient le souçi de la formule précédente ?

Est-ce tout simplement une erreur de formule ou c'est mon usage de indirect qui est faux ?

Bonjour

INDIRECT("$A$1:$A$"&MAX($A$1:$A$65000)

se transforme en INDIRECT("$A$1;$A$149"<>"") puis passe à VRAI à l'étape suivante

à mon avis, ta colonne A contient la valeur 149 qui est la valeur maximum dans la colonne.

Cordialement

Rechercher des sujets similaires à "recuperer derniere valeur plage"