[Excel] Dernier membre non vide d'une colonne [Résolu/Fermé]

Messages postés
231
Date d'inscription
vendredi 3 octobre 2008
Statut
Membre
Dernière intervention
22 juin 2014
- - Dernière réponse :  jemira85 - 17 août 2019 à 09:03
Bonjour à tous,
Dans une cellule L6, j'aimerais que soit inscrit le dernier membre non vide de ma colonne F.
En d'autres termes, je dispose d'une colonne F (qui contient uniquement des lettres), et il faut que je puisse inscrire en L6 la lettre inscrite "en bas" de F, sans avoir à la recopier bien évidemment.

Je ne sais pas si ça vous aide, mais ma colonne F ne contient pas de "trous", c'est-à-dire qu'à partir de F1, et jusqu'au dernier membre de la colonne, toutes les cellules sont prises.

Merci d'avance à tous ceux qui pourront m'aider.
Afficher la suite 

11 réponses

Meilleure réponse
approuvée par Jean-François Pillou le 23 janv. 2019
Messages postés
7
Date d'inscription
lundi 13 juin 2016
Statut
Membre
Dernière intervention
15 juin 2016
20
23
Merci
Faire:
=RECHERCHE(9^90;plage colonne ou ligne)

pour avoir valeur (numérique) dernière cellule non vide.

J'espère que cette solution simple répond à au moins une partie de ta question. Bonsoir!

Dire « Merci » 23

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 62489 internautes nous ont dit merci ce mois-ci

Super ! Simple, efficace : Bravo !
Messages postés
231
Date d'inscription
vendredi 3 octobre 2008
Statut
Membre
Dernière intervention
22 juin 2014
23
8
Merci
J'ai trouvé quelque chose de sympa :

{=MAX(SI(ESTVIDE(plage_voulue);0;LIGNE(plage_voulue)))}

Cela donne le numéro de ligne de la dernière cellule non vide de la colonne plage_voulue, c'est niquel !

Cette formule sert à trouver la valeur de la dernière cellule non vide de la plage_voulue, mais la plage doit être restreinte, pas trop grande.
{=INDIRECT("Lettre_de_la_colonne"&MAX(SI(ESTVIDE(plage_voulue);0;LIGNE(plage_voulue))))}

Merci tout de même pour ta dernière réponse tontong, à bientôt !
Pour moi ça fonctionne en tout cas ! :) Merci !
Pour que ça marche, il ne faut pas oublier de valider la formule en faisant CTRL+SHIFT+ENTER et non pas juste ENTER, car c'est une formule matricielle.

Si on ne fait qu'ENTER, ça renvoie en effet la valeur de la première ligne.
Merci beaucoup!! c'est une formule à retenir :)
fatgk
Messages postés
13
Date d'inscription
mardi 30 mai 2017
Statut
Membre
Dernière intervention
5 juin 2017
-
Tout d'abord, je vous remercie énormément pour cette aide.

J'aurai un autre soucis.
La formule {=MAX(SI(ESTVIDE(plage_voulue);0;LIGNE(plage_voulue)))} me donne bien le numéro de la dernière remplie et j'aurai maintenant aimé insérer ce numéro dans une autre formule.

Si la formule {=MAX(SI(ESTVIDE(plage_voulue);0;LIGNE(plage_voulue)))} me renvoie 56 et que je veux connaitre je vais utiliser ce 56 dans une autre formule; par exemple au lieu d'écrire MOIS($A$11:$A$56) .
j'aurai bien voulu écrire MOIS($A$11:$A$ {=MAX(SI(ESTVIDE(plage_voulue);0;LIGNE(plage_voulue)))} )

Je vous remercie énormément de votre aide
Messages postés
16951
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 octobre 2019
3627
5
Merci
Re,

Pour les explications sur les formules matricielles, tu trouveras de nombreux tutos qui l'expliquent mieux que je pourrais le faire en quelques lignes. N'oublie pas Google est ton ami, saisi dans le moteur de recherche formules matricielle Excel tu n'auras que l'embarras du choix.
pour revenir à ma formule il suffit de la coller dans une cellule, alors que cette cellule est activée (ou fais un clic dans la barre des formules dans la formule)
et appuyer en même temps sur les trois touches Ctrl, Shift et Entrée
si tu fais bien elle devrait resembler à ça

{=DECALER(A$1;MAX((A$1:A$201<>"")*LIGNE($1:$201))-1;)}

teste la colonne A du fichier joint

http://cjoint.com/?BAAvS478UlJ
rogille
Messages postés
4
Date d'inscription
dimanche 15 janvier 2012
Statut
Membre
Dernière intervention
27 janvier 2012
2 -
OK Mike, ça marche avec Excel et également avec Libre office
Merci et bravo
Pas simple, mais efficace
Messages postés
4
Date d'inscription
dimanche 15 janvier 2012
Statut
Membre
Dernière intervention
27 janvier 2012
2
2
Merci
Dans Libre office cela marche avec:
=RECHERCHE("z";A1:A4999)

"z" : indique dernière valeur
A1:A4999 : de la cellule A1 à la cellule A4999
c'est un exemple, au lieu de A4999 ce peut être A6500 ou peut-être plus

idem pour une ligne, en remplaçant A1:A4999 par A8:ZZ8 (par exemple)

Fonctionne que le contenu soit en numérique ou (et) texte, si c'est un formatage particulier (des dates ou heures par exemple), il faudra que le formatage soit le même dans la cellule résultat que dans la colonne ou la ligne où s'effectue la recherche

Ne pas mettre la formule à la fin de la colonne ou de la ligne de la recherche
Messages postés
15543
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
13 octobre 2019
8719
1
Merci
Bonjour,

Il faut une petite macro (toute petite !) ;)

Sub toto()
[L6] = [F65536].End(xlUp)
End Sub


m@rina
0
Merci
Bonjour,
Essayez avec cette formule: =RECHERCHE("z";F:F)
Messages postés
231
Date d'inscription
vendredi 3 octobre 2008
Statut
Membre
Dernière intervention
22 juin 2014
23
0
Merci
Merci pour vos réponses :

@tontong : Ta solution a l'air de fonctionner.

@m@rina : Je préfèrerai éviter les macros si possible.

Néanmoins, s'il y a d'autres solutions, je prends aussi, car même si la solution de tontong fonctionne, je vais voir si elle s'adapte à ce que je veux faire, ça c'est moins évident ^^

J'ai oublié de préciser, ma colonne F n'a jamais plus de 200 cellules remplies, autrement dit, à partir de F200, on peut être sûr que toutes les cellules sont vides.
Je pensais peut-être à une forme de récurrence : si f200 est vide, alors va voir f199 etc. Si une fonction ou une astuce de ce type existe, faites-moi signe.

En tout cas, merci à vous 2, je passe le sujet en résolu, je vais déjà voir si je m'en sors, quitte à revenir sur ce topic plus tard.
Messages postés
231
Date d'inscription
vendredi 3 octobre 2008
Statut
Membre
Dernière intervention
22 juin 2014
23
0
Merci
Y-t-il un moyen pour récupérer juste le numéro de ligne de la dernière cellule non vide de la colonne ?

Un truc du style =CELLULE("ligne";dernière_cell_non_vide)

0
Merci
Re,
Sous réserve de vérifications: =EQUIV(RECHERCHE("z";F:F);F:F;0)
Il y a peut-être plus simple?
0
Merci
Dans la même veine: pour trouver le numéro de ligne de la première cellule non-vide d'une colonne

{=MIN(SI(ESTVIDE(plage_voulue);nombre_ligne_max_+1;LIGNE(plage_voulue)))}

Avec nombre_ligne_max_+1 le numéro de la ligne qui suit la dernière ligne de la plage (plage A1:A16 -> 17).

Merci à Foreverson pour l'inspiration!
Messages postés
16951
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 octobre 2019
3627
0
Merci
Salut,

Il y a de monbreuses possibilités, pour ma part je préfére utiliser une formule matricielle qui prend en compte aussi bien les valeurs alphanumériques que texte et les cellules vides dans la plage.

pour valider une formule matricielle en même temps clic sur les touches Ctrl, Shift et Entrée si c'est bien fait la formule se place entre {}
=DECALER(A$1;MAX((A$1:A$201<>"")*LIGNE($1:$201))-1;)
rogille
Messages postés
4
Date d'inscription
dimanche 15 janvier 2012
Statut
Membre
Dernière intervention
27 janvier 2012
2 -
Bonsoir,
J'ai essayé dans un tableau fait avec Libre Office, et ça ne marche pas, ou je n'ai pas su faire la manip correctement. Pour ce qui est de la question "trouver la valeur de la dernière cellule non vide d'une colonne", la solution que j'ai proposée me parait plus simple à comprendre et à mettre en oeuvre, même si techniquement elle est moins élaborée...

J'aurai aimé, pour tenter de comprendre, une explication détaillée du contenu de la formule matricielle, mais c'est peut-être abuser ?
A+
rogille