Obtenir facilement la dernière ligne et/ou colonne non vide d'une plage

Bonjour,

Je suis nouveau sur ce forum et ne sais pas si cette astuce a déjà été publiée (désolé si c'est le cas, ma recherche infructueuse de cette publication est peut-être liée à mon inexpérience ici...), alors je vous la donne en l'état. Elle est certainement perfectible, alors n'hésitez pas à la commenter et à la corriger si besoin.

Je recherchais un moyen simple d'afficher dans une cellule d'Excel la dernière ligne ou colonne non vide d'une plage de données, le but au final étant de pouvoir reconstituer des adresses complètes à partir de ces informations avec la fonction INDIRECT. Je souhaitais aussi que la solution soit dynamique et que la valeur retournée se mette à jour automatiquement en cas de modification de la plage testée.

J'ai obtenu le résultat attendu avec les fonctions matricielles. Ainsi, pour obtenir la dernière ligne non vide de la colonne A par exemple, j'ai utilisé la formule suivante (à valider avec CTRL+SHIFT+ENTER et non simplement avec ENTER) :

=MAX(SI((A:A)<>"";LIGNE((A:A))))

Il est évidemment possible d'adresser un autre fichier que celui où vous saisissez la formule :

=MAX(SI(('C:\Users\sylvburg\Documents\Professionnel\R\bridge_marge\output_files\[bridge_marge_fichier01.xlsx]Sheet1'!A:A)<>"";LIGNE(('C:\Users\sylvburg\Documents\Professionnel\R\bridge_marge\output_files\[bridge_marge_fichier01.xlsx]Sheet1'!A:A))))

De la même manière, la formule à utiliser pour trouver la dernière colonne non vide de la ligne 1 devient :

=MAX(SI((1:1)<>"";COLONNE(1:1)))

Et pour tester un autre fichier que celui où vous saisissez la formule :

=MAX(SI(('C:\Users\sylvburg\Documents\Professionnel\R\bridge_marge\output_files\[bridge_marge_fichier01.xlsx]Sheet1'!1:1)<>"";COLONNE(('C:\Users\sylvburg\Documents\Professionnel\R\bridge_marge\output_files\[bridge_marge_fichier01.xlsx]Sheet1'!1:1))))

Vous pouvez aussi limiter la plage testée, ici par exemple je teste la dernière cellule non vide de la ligne 1

pour les colonnes entre A et E :

=MAX(SI((A1:E1)<>"";COLONNE((A:E))))

Et vous pouvez évidemment tester d'autres valeurs que les non vides; ici je retourne la dernière ligne où je trouve en colonne A une chaîne de caractères commençant par "FSTAT" :

=MAX(SI(GAUCHE(A:A;5)="FSTAT";LIGNE((A:A))))

Voir le fichier ci-joint pour les exemples, en espérant que cela en aide certains.

A+

152lcminmax.xlsx (11.41 Ko)

Bonjour,

bientôt un an que le sujet est ouvert, et je ne le vois qu'aujourd'hui !

Moi je dis merci pour ce partage, en y réfléchissant bien j'aurais peut-être trouvé à le faire, mais là j'avoue en avoir eu besoin pour des formules sans pour autant avoir trouvé "si simple".

Merci encore, je me le sauvegarde sur mon PC afin de m'y replonger à l'occasion !

Il est vrai que c'est une donnée que nous cherchons souvent à avoir, souvent en VBA, mais là sans VBA cela me convient également !

@ bientôt

LouReeD

Bonjour LouReed,

Merci pour votre retour, j'avais oublié ce vieux post.

C'est vrai que c'est une solution très pratique couplée à la fonction INDIRECT pour reconstituer des adresses de plages automatiquement. Je l'utilise beaucoup depuis que j'ai trouvé cette solution.

Content d'avoir pu aider.

@+

Bonjour,

@LouReeD,

Pour tes soirées au coin du feu…

Bonsoir,

je n'ai pas de feu, ni de coin, mais j'aime bien ce fichier !

Merci pour le partage, je le met de coté pour de futurs réponses sur le forum !

Je continuerai ainsi à passer pour un dieu des formules d'Excel !

@ bientôt

LouReeD

Rechercher des sujets similaires à "obtenir facilement derniere ligne colonne vide plage"