Autofiltre et reference de cellule

  • Initiateur de la discussion Jean
  • Date de début
J

Jean

Guest
Voili vola mon probleme,

J'ai un fichier qui a un filtre automatique. Je cherche a creer une cellule qui se refere uniquement a la cellule qui se trouve sous l'entete en fonction du critere choisit.

En effet si on applique le filte automatique Excel cache les lignes qui ne repondent pas au critere et affiche les lignes qui satisfont ce critere. Ceci a pour consequence que la deuxieme ligne n'a plus l'adresse A2 mais A84 et donc que la cellule qui avait A2 renvoi obtinement la valuer de la cellule A2.

Si quelque'un a une idee ou la solution cela m'aiferait vraiment beaucoup

merci
 
@

@+Thierry

Guest
Salut Jean, le Forum

Oui c'est normal, l'AutoFilter ne permets pas de pouvoir avoir des références relatives aux cellules, enfin pas à ma connaissance sans VBA...

Donc Trois solutions pour t'orienter :

Soit tu peux "filtrer" tes données sans AutoFilter mais avec AdvancedFilter (Filtre élaboré)...
=> Lien supprimé


Soit tu peux "filtrer"tes données par un AutoFilter et tu auras une procédure VBA pour récupérer...
=> Lien supprimé

Soit tu peux "filtrer" tes données par une formule.
Là il faudrait que tu soies plus détaillé dans ce que tu dois filtrer... Et nos Es Formulas Spécialistes pourront te trouver aussi une solution.

Bonne fin d'aprèm
@+Thierry
 
J

Jean-Marie

Guest
Bonsoir,

Je ne peux pas rentrer de trop dans les détails, sur cette fonction matricielle.

=GRANDE.VALEUR((SOUS.TOTAL(3;DECALER(A1;LIGNE(A$1:A$6)-1;))*LIGNE(A$1:A$6));SOUS.TOTAL(3;A$1:A$6)-1)

Elle indique le numéro de la première ligne sous l'entête du filtre.

En gros la partie SOUS.TOTAL(3;DECALER(A1;LIGNE(A$1:A$6)-1;))*LIGNE(A$1:A$6)), crée un tableau en mémoire, contenant 0 si la ligne est masquée, ou le numéro de la ligne si affichée.

GRANDE.VALEUR(.....;SOUS.TOTAL(3;A$1:A$6)-1) retourne la Xième - 1 valeur, en fonction d'un nombre de valeurs affichées par le filtre.

@+Jean-Marie
 
J

Jean-Marie

Guest
Bonjour

Pour pouvoir adapter cette formule matricielle, il suffit de changer la longueur en nombre de ligne de la plage A$1:AS6 (3 fois), il n'est pas nécessaire de changer la colonne. La première ligne de la plage correspond à l'entête de filtrage.

Le deuxième argument de la fonction grande.valeur -SOUS.TOTAL(3;A$1:A$6)-1) renvoi la première donnée sous l'entête de filtrage, il suffit de remplacer le 1 par 2 pour avoir la deuxième ligne, etc.

Cette fonction renvoi donc le numéro de la ligne, pour connaître la valeur de cette ligne, avec la fonction index(A$1:A$6;ValeurRetournée;1), la plage définie ici doit pointée sur la bonne colonne.

@+Jean-Marie
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 505
Messages
2 089 071
Membres
104 020
dernier inscrit
Mzghal