Contenu de la 1ère cellule non vide

Résolu
thierryn -  
 thierryn -
Bonjour.

Dans Excel, je voudrais pouvoir retrouver la 1ère cellule non vide dans une ligne.

J'ai trouvé cette formule donnée par Microsoft... mais elle ne fonctionne que pour la 1ère cellule de la plage :

=INDIRECT("L"&LIGNE(plage cellules)&"C"&MIN(SI(ESTVIDE(plage cellules);257;
COLONNE(plage cellules)));FAUX)

Je crois bien que ça vient de COLONNE (plage cellules) qui renvoie toujours le numéro de colonne de la 1ère cellule quand il s'agit d'une plage.

Quelqu'un a-t-il une solution ?


Merci d'avance.

3 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 315
 
Bonjour,

Je ne Comprend pas trop ce que tu cherches à faire:
retrouver la 1ère cellule non vide dans une ligne.
et
ne fonctionne que pour la 1ère cellule de la plage :

ligne <> plage ???

Je sais, c'est lundi mais...
0
thierryn
 
Par exemple :

Avec la plage de cellules (A1:C1),

Si A1="a", B1="b", C1="c", alors la formule donne "a".

Si A1="", B1="b", C1="c", alors la formule donne "b".

Si A1="a", B1="", C1="c", alors la formule donne "a".

...

"Ne fonctionne que pour la 1ère cellule de la plage : " :
Exemples :
COLONNE(A1:C1)=1
COLONNE(B1:C1)=2
mais finalement je ne pense pas que le problème vienne de là.

Dans la formule donnée, j'ai plutôt l'impression que ça vient de ESTVIDE(plage cellules) qui renvoie toujours FAUX pour une plage de cellules.

Si l'on utilise SI(ET(NBVAL(plage de cellules)=0;1) à la place de ESTVIDE(plage cellules), ça ne résout pas non plus le problème car ça examine le nombre de valeurs dans la plage considérée.
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 315
 
La formule de Microsoft, bien qu'un peu compliquée, est une formule matricielle et son résultat est bon (j'ai testé)

au cas où:
Il faut valider par Ctrl+maj+entree( et non par entree) le curseur clignotant dans la barre de formule


Aitre formule mais "maison" toujours matricielle dans la plage A1&:G1
=INDIRECT(ADRESSE(1;MIN(SI(A1:G1<>"";COLONNE(A1:G1)))))
0
thierryn
 
Merci beaucoup. J'ai essayé et ça fonctionne.
0