XL 2010 Résolu par Job75 et JHA : afficher le contenu des cellules de la dernière ligne

arthour973

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,

Toujours dans mon fichier de travail, je un nouveau souci que je ne sais pas résoudre malgré mes recherches et essais.
Je me permets, pour la énième fois, de me tourner vers vous pour votre aide si précieuse.

Voici ce que je voudrais faire
En ligne 3
J'ai besoin d'afficher les éléments de chaque colonne pour la dernière ligne saisie
J'ai deux formules qui fonctionnent mais pas pour les cellules F3 et G3
Pour les chiffres : =RECHERCHEV(9^9;A:A;1)
Pour les lettres : =RECHERCHE("zzz";D:D)

Je ne comprends pas pkoi ça marche pas pour ces 2 cellules alors que ce sont les mêmes que pour les autres cellules "nombres"
J'ai également besoin que si l'une des cellules de la dernière ligne est vide, l'affichage soit vide.

Je joins le fichier test (pour ne pas perturber les calculs, j'ai mis mes explications en Feuil2).
Avec mes remerciements déjà pour m'avoir lu,
Bonne fin de journée à toutes et à tous,
Amicalement,
Lionel,
 

Fichiers joints

job75

XLDnaute Barbatruc
Bonjour Lionel,

9^9 est égal à 387420489 qui est inférieur aux valeurs des colonnes F et G.

En conséquence cela crée des références circulaires en F3 et G3.

Utilise donc un nombre assez grand, en E3 à tirer à droite :
Code:
=RECHERCHEV(9^99;E:E;1)
ou plus simplement :
Code:
=RECHERCHE(9^99;E:E)
A+
 

arthour973

XLDnaute Barbatruc
Supporter XLD
Bonjour Job75,
C'est toujours un plaisir de te lire ;)
Merci pour ta réponse.
De plus, mon fichier test est faux puisque la ligne 3 ne peux pas être, me semble-t-il, dans la même feuille que les cellules sources.

Je teste et je reviens.
:)
 

arthour973

XLDnaute Barbatruc
Supporter XLD
Merci Job75, ça marche nickel ;), je n'avais pas pensé à augmenter la puissance.
Il me reste un souci que je n'arrive pas à résoudre :
J'ai également besoin que si l'une des cellules de la dernière ligne est vide, l'affichage soit vide.
Je remets le fichier modifié.
Si tu as une idée elle sera, comme d'habitude, la bienvenue LOL,
Amicalement,
Lionel,
 

Fichiers joints

arthour973

XLDnaute Barbatruc
Supporter XLD
Bonjour JHA,

Merci de m'avoir répondu.
ça semble fonctionner nickel ;)
Mais je comprends rien à la formule ...... je vais tenter de comprendre.
Un grand merci à vous aussi :)
Amicalement,
Lionel,
 

job75

XLDnaute Barbatruc
Re, salut JHA,

Quant à ceci :
J'ai également besoin que si l'une des cellules de la dernière ligne est vide, l'affichage soit vide.
C'est un autre problème, il faut d'abord s'entendre sur ce que tu appelles la "dernière ligne".

Si la "dernière ligne" est celle de la colonne A, elle est normalement repérée par la valeur en A3.

Alors formule en D3 à tirer à droite :
Code:
=SI(INDEX(D:D;$A3+LIGNE())="";"";INDEX(D:D;$A3+LIGNE()))
Edit : la formule s'applique au 1er fichier mais tu sauras l'adapter au second.

A+
 
Dernière édition:

Marcel32

XLDnaute Accro
Bonjour,

J'ai regardé la solution de JHA, et du coup je me pose une question : pourquoi ne pas utiliser une formule plus simple comme par exemple =DECALER(D$3;$A3;0) en D3 et à tirer jusqu'en O3, sur la feuille "Feuil1" du fichier original ?

Tu peux tester ma super-méga-formule Thuthur, mais si elle fonctionne je ne suis pas sûr pour autant que ça vaille le coup que tu essayes de la comprendre, c'est bien trop complexe...:p:p:p
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour Marcel32, le forum,
pourquoi ne pas utiliser une formule plus simple comme par exemple =DECALER(D$3;$A3;0) en D3 et à tirer jusqu'en O3, sur la feuille "Feuil1" du fichier original ?
C'est le principe que j'ai utilisé au post #7 (utilisation de la valeur en A3) sauf que DECALER est volatile et qu'il vaut mieux l'éviter quand c'est possible.

Bonne journée.
 

arthour973

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,
Bonjour Marcel,
LOL je vois que tu connais mon niveau :confused:
Mais j'y travaille (enfin j'essaie) et peut-être que je vais comprendre ta formule LOL.

Bonjour Job,
Merci pour ton conseil,
J'avais tenté la formule : =SI(INDEX(D:D;$A3+LIGNE())="";"";INDEX(D:D;$A3+LIGNE()))
Mais je n'avais pas réussi à l'adapter à mon cas.
Résultat, je m'étais arrêté à la fonction "décaler".
Suite à "sauf que DECALER est volatile ", je vais insister sur ta formule.
Merci à vous tous d'être toujours là ;)
Amicalement,
Lionel,
 

job75

XLDnaute Barbatruc
Re Lionel,

Avec ton 2ème fichier il faut entrer en Résultat!D3 :
Code:
=SI(INDEX(Feuil1!D:D;$A3+2)="";"";INDEX(Feuil1!D:D;$A3+2))
ou si l'on risque d'insérer des lignes au-dessus du tableau source :
Code:
=SI(INDEX(Feuil1!D:D;$A3+LIGNE(Feuil1!$A2))="";"";INDEX(Feuil1!D:D;$A3+LIGNE(Feuil1!$A2)))
A+
 

Marcel32

XLDnaute Accro
C'est le principe que j'ai utilisé au post #7 (utilisation de la valeur en A3) sauf que DECALER est volatile et qu'il vaut mieux l'éviter quand c'est possible.
Merci pour cette réponse. :)
Toutefois, je ne comprends pas quelle implication cela peut avoir.
Ou, autrement dit, dans quelle circonstance cela peut-il être gênant ?

Perso je n'aurais pas trouvé de solution. C'est en regardant la formule utilisée par JHA :
=DECALER(Feuil1!$A$1;EQUIV(Résultat!$A$3;Feuil1!$A:$A;0)-1;COLONNE()-1)
que je me suis dit qu'on pouvait probablement la simplifier en =DECALER(D$3;$A3;0).
 
Dernière édition:

job75

XLDnaute Barbatruc
Re,

Les fonctions volatiles (DECALER INDIRECT MAINTENANT etc...) sont recalculées à chaque ouverture du fichier.

S'il y a beaucoup de formules volatiles cela peut prendre du temps.

Et à la fermeture, même quand on n'a fait aucune modification, il y a une invite, c'est agaçant.

A+
 

arthour973

XLDnaute Barbatruc
Supporter XLD
Encore Merci pour vos échanges :)
Job dit : S'il y a beaucoup de formules volatiles cela peut prendre du temps.
Et à la fermeture, même quand on n'a fait aucune modification, il y a une invite, c'est agaçant.

Dans mon fichier de travail, la feuille concernée aura environ une centaine de "cette" formule.
 

Marcel32

XLDnaute Accro
Commence par mettre la formule suivante en A6 :
=MAX(Feuil1!A:A)

Puis essaye ceci en B6, à tirer vers la droite :
=SI(INDEX(Feuil1!B:B;$A6+LIGNE()-4)="";"";INDEX(Feuil1!B:B;$A6+LIGNE()-4))
ou peut-être ceci :
=SI(INDEX(Feuil1!B:B;$A6+2)="";"";INDEX(Feuil1!B:B;$A6+2))

Mais le mieux si tu veux rester dans l'idée de Job75, c'est-à-dire de pouvoir modifier le nombre de lignes avant la ligne 3 de ta feuille "Feuil1", en considérant que tu n'as pas supprimé cette ligne 3 (si tu modifies la structure de ton fichier à chaque fois que tu le repostes, ça va pas être facile d'utiliser les formules qui te sont données par rapport au fichier précédent. ;)), alors tu dois pouvoir aussi utiliser une formule du genre pour la cellule A6 de ta feuille "Résultat", à tirer vers la droite :
=SI(INDEX(Feuil1!A:A;Feuil1!$A3+LIGNE(Feuil1!$A3))="";"";INDEX(Feuil1!A:A;Feuil1!$A3+LIGNE(Feuil1!$A3)))
 
Dernière édition:
Haut Bas