Fonction =RECHERCHE pas compatible avec un filtre
Bonjour à tous, sur un fichier que j'avais deja posté ici pour une aide sur le transpose et les filtres j'aurai une autre question.
J'ai une colonne ou je recupere la derniere cellule non vide de la ligne avec un =RECHERCHE("zzzz",PLAGE).
Cette formule fonctionne très bien jusqu'a ce que l'on filtre plusieurs fois. En effet elle va etre nickel pour le premier filtre mais quand on continue à defiltrer/ refiltrer elle garde en memoire la plage du tableau qui s'est malheureusement raccourci avec le filtre.
Si quelqu'un avait une solution pour fixer cette formule.
Le fichier est malheureusement trop lourd pour que je l'envoie ici, je peux le joindre par mail si vous le souhaitez pour vous faire une idée
Merci d'avance.
Bonjour LoicIt
En utilisant la fonction DECALER() pour définir la plage peut-être
@+
Bonjour BrunoM45, merci de votre répone je me suis renseigné quand à la fonction DECALER.
Comme je ne peux poster ce fichier je mets un screen pour que mes explications soient plus parlantes.
C'est donc dans la colonne derniere date que je recupere la derniere valeur non vide de la ligne (qui peut donc changer car soumise aux filtres)
Suite à votre message je me suis renseigné et j'ai essayé cette formule mais il y a un petit problème dans la valeur qui me renvoie (il me renvoie bien une date mais pas la bonne) et je n'arrive pas à trouver d'ou cela provient : =INDEX(13:13;MAX(SI(SOUS.TOTAL(3;DECALER(G13;LIGNE(G13:AZ13)-6;0));LIGNE(G13:AZ13)))) pour la premiere ligne et ainsi de suite.
Merci beaucoup
Re,
Pour moi il manque des paramètres dans la fonction DECALER() mais sans fichier
Un simple fichier avec 1 ligne d'exemple et le résultat attendu suffit
@+
J'ai réussi à diminuer la taille du fichier.
En E13 on peut voir la formule de base RECHERCHE qui donc ne s'adapte pas aux filtres. En E14 la formule que j'ai posté dans mon précédent message qui me renvoie effectivement une date mais pas la bonne
Edit : J'ai compris pourquoi il me renvoyait une mauvaise date (le 14;14 du debut de la formule fait qu'il me renvoie la date de la 14eme colonne) mais je ne vois pas quoi indiquer pour pouvoir corriger cela
Re,
Pas mal l'idée du RECHERCHE("zzzz";Plage)
=RECHERCHE("zzzz";DECALER($G13;0;0;1;110))On décale la cellule G13 de 0 ligne, 0 colonne, hauteur 1 lignes, largeur 110 colonnes
Pour le 110 à voir si cela peut évoluer, auquel cas il faudra utiliser NBVAL(12:12)
@+
Merci beaucoup cela fonctionne parfaitement. Le seul inconvénient je pense est qu'en filtrant on fait rétrécir le tableau en nombre de ligne, le RECHERCHE va etre perdu pour les lignes disparues et quand on va défiltrer il va afficher REF comme derniere cellule non vide pour toutes les lignes "supplémentaires" au filtre précedent.
Ce n'est qu'un très leger inconvénient car il suffit au final de retirer la formule pour toute la colonne pour que tout se remette dans l'ordre mais je me demandais si vous aviez une explication ?
Merci encore
Re,
Ce n'est pas lié à la formule que j'ai donné mais à la donnée non trouvée
On peut éviter cela en utilisant SIERREUR()
A+
Bonjour merci de votre reponse, mais j'ai du mal à comprendre comment le SIERREUR pourrait résoudre ce probleme.
Cette formule affiche ce que l'on souhaite en cas d'erreur dans la cellule mais j'ai du mal à comprendre ce qu'il faudrait que j'indique pour à nouveau avoir la valeur et non encore une REF!. sans avoir à retirer la colonne.
Je pense que le souci principal c'est que quand le tableau retrecit apres filtre, la formule devient RECHERCHE("zzzz";DECALER(#REF!;0;0;1;150)) dans toutes les lignes "supprimées", et donc ne remet pas automatiquement le vrai bon numéro de cellule au lieu du #REF quand on defiltre.
Peut etre que mon souhait n'est pas réalisable avec juste une formule.
Merci
Bonjour LockIt,
Ok je vois, il faut alors partir de la ligne 12 (qui n'est normalement pas supprimée) et changer quelque peu la formule
En E13 à recopier vers le bas
=RECHERCHE("zzzz";DECALER($G$12;LIGNE()-12;0;1;110))@+
Mervi de votre réponse mais je ne sais pas si je me suis bien exprimé sur mon problème.
Voilà ce que j'obtiens après un filtre (après les 41 lignes où il y a des valeurs les lignes disparaissent laissant donc place à des REF pour les formules utilisant les valeurs)
Apres cela quand j'enleve le filtre je peux voir qu'après ces 41 lignes la formule RECHERCHER a conservé la cellule #REF au lieu de G43 par exemple
J'ai techniquement effectivement juste à tirer la formule à partir de la derniere cellule où il y a une valeur sur toutes les cellules avec l'erreur. Mais je voulais savoir si c'etait possible qu'elle se remette automatiquement à jour.
Désolé pour les explications complexes
Merci beaucoup effectivement cela marche parfaitement comme ça.
J'avais perdu espoir de pouvoir le faire autrement qu'avec du VBA.
Un grand merci !