filtre avancé avec une formule dans les critère

Copper Contributor

bonjour,

je travaille avec office 2021 et office 365 et je voudrais filtrer un tableau à l'aide du filtre avancé.

Tout fonctionne lorsque dans les critères je mets par exemple ce critère <= 17/01/2022 

les 3 lignes ou les dates sont inférieur ou égale à 17/01/2022 sont sélectionner.

Comme je ne veux pas rentrer la date manuellement, car la date que je veux filtrer change toutes les semaines, j'ai créer une formule pour afficher la date en fonction de la semaine et je l'ai mise dans la cellule des critères et là plus rien ne marche.

j'ai essayer plusieurs formule des plus basique mais j'ai l'impression que la cellule de critère n'accepte pas que l'on mette une formule.

Comment peut on faire pour remédier a cela svp? j'ai essayer en regardant des tutos avec des formules mais ça ne filtre pas le tableau est vide je ne vois pas comment on doit écrire la formule pour qu'elle soit prise en compte

dans l'attente de votre réponse 

cordialement

22 Replies

@gwenicrocket 

Vous pouvez utiliser

 

="<="&cellule_avec_la_date

 

ou

 

="<="&expression

merci beaucoup pour la réponse rapide, ça fonctionne 

j'ai chercher partout et nul part il est indiquer de procéder comme ça pour les formules dans tous les tuto sur internet.

bonne soirée

  @Hans Vogelaar 

bonjour,
encore une petite question quel serait la formule a mettre dans les critères qui permettrai de filtrer dans une colonne du tableau les cellules contenant du texte écrit en vert pour ne pas les afficher ? soit les cellule différente de vert mais je ne connais de formule pour traiter la couleur.
="<>"&...................

@gwenicrocket 

Excel n'a pas de prise en charge intégrée pour le filtrage sur les couleurs dans le filtre avancé. Vous auriez besoin d'une fonction VBA. Voir Color Functions In Excel (en anglais)

bonjour,
j'ai mis des formules dans le filtre avancé ou je prend en référence une cellule de la feuille que je veux filtrer comme par exemple la cellule A2. le filtre fonctionne. par contre comme la feuille que je filtre est une extraction, la fois d'après quand je fait un copier coller pour remplacer le tableau que je filtre. La ligne ou se trouve la cellule A2 à donc changé. et cela change la formule qui est dans les critères. que peut on faire pour que cette formule ne change pas?
cordialement

@gwenicrocket 

Since you are using Office2021 and 365, why not use the dynamic array FILTER function rather than the semi-manual Advanced filter?

Hello peter,
in fact I use advanced filter because I do an extraction of 3 schedules from 3 different excel files that are assembled in the first tab of my file.
The other tabs are Monday, Tuesday, Wednesday, Thursday, Friday and in the last tab the criteria of my advanced filter.
When I change the week number, I launch a small VBA code that allows me to create using the criteria, the tables representing the workload for each day of the week according to the filters.
with the dynamic filter I don't see how it would be easier

bonjour peter,
en fait je me sert du filtrage avancé car je fait une extraction de 3 planning issue de 3 fichier excel différent qui sont assemblé dans le premier onglet de mon fichier.
Les autres onglets sont lundi, mardi, mercredi, jeudi, vendredi et dans le dernier onglet les critères de mon filtre avancé.
Lorsque je change le numéro de semaine, je lance un petit code VBA qui me permet de créer à l'aide des critères, les tableaux représentant la charge de travail pour chaque jour de la semaine en fonction des filtres.
avec le filtre dynamique je ne vois pas comment se serai plus facile
bonjour Hans,
cela ne fonctionne pas malheureusement. en fait il faudrait que je réécrive les formule après chaque extraction. Peut on écrire du coup en vba:
d'écrire tel formule "=....." dans la cellule $P$2 , est ce que cela est possible?
sinon j'essayerai en trichant et en copiant l'extraction a partir de la ligne 3, la formule prenant en compte une cellule de la ligne 2 et se décalant après ça devrait peut être passer.

@gwenicrocket 

 

Range("P2").Formula = "=A2"

bonjour,

je suis toujours dans mes filtre avancé et je viens de créer un formulaire avec combobox et textbox pour faire les recherches automatiquement cela fonctionne sauf pour les colonnes ou je devais trier des dates, j'ai trouver la parade en codant par exemple

 

Cells(3, 6).Value = Format(ComboBox6.Value, "dd/mm/yyyy")

 

par contre  je voulais trier avec le filtre avancé entre deux date avec 2 textbox le problème c'est pour insérer "<=" dans la cellule en fonction de la valeur de la textbox, j'ai essayer plusieurs variante mais cela ne fonctionne pas, exemple

 

If TextBox1.Text = "" Then Cells(3, 6).Value = "" Else Cells(3, 6).Value = "="">="" & DATEVAL(P3)"

 

si ma textbox est vide la cellule du filtre est vide sinon la valeur est la formule =">=" &DATEVAL(P3)

problème cela me met la formule =">=" &@DATEVAL(P3) et du coup dans la cellule j'ai #NOM dans la cellule.

j'ai mis dateval() pour être sûr d'avoir la valeur de la date car selon les autres essai j'avais la date d'inscrite type>=10/10/2020 par exemple mais pas la formule.

j'ai beau chercher je ne trouve pas comment écrire ce code et du coup si l'on doit mettre le format de cellule en date ou standard 

à l'aide merci

@gwenicrocket 

Essayez

 

If TextBox1.Text = "" Then Cells(3, 6).ClearContents Else Cells(3, 6).Formula = "="">=""&P3"
merci la formule sort comme il faut, j'ai bien >=10/10/2020 et quand je clique sur la cellule j'ai la formule en revanche comment puis je avoir >=44114 à la place, car le filtre avancé ne fonctionne pas et si je met le format de cellule sur date ou standard j'ai toujours >=10/10/2020

@gwenicrocket 

Peut-être

If TextBox1.Text = "" Then Cells(3, 6).ClearContents Else Cells(3, 6).Formula = "="">=""&TEXT(P3,""jjmmaaaa""")

non cela ne fonctionne malheureusement pas en fait je viens de voir que le problème vient du fait que pour les dates avec le jour inférieur à 12 le résultat de la textbox est inverse . Le jour passe en mois seul les dates avec des jours supérieur à 12 sont écrites dans le bon ordre.
et ce que je mette .text ou .value, j'ai essayé de mettre le résultat dans une cellule en texte et de le transformer avec DATEVAL() mais vu que la date est à l'envers ça ne sert a rien, et ce même en utilisant "jj/mm/yyyy". j'ai vu que c'était un problème connu mais je n'ai pas trouver comment le résoudre

@gwenicrocket 

Désolé. J'espère que quelqu'un avec les mêmes paramètres système que vous pourra vous aider.

bonjour,
je viens de trouver un moyen peu orthodoxe mais qui fonctionne
j'ai un tableau ou je fais arriver la valeur de la textbox en A2 et après conversion je récupère le résultat en E2
A B C D E F
1 TEXTBOX jour text moistext anneetext date
2 20/12/2020 44185 20/12/2020

avec les formule en B2 =SI(ESTNUM($A$2);JOUR($A$2);"")
en C2 =SI(ESTNUM($A$2);MOIS($A$2);"")
en D2 =SI(ESTNUM($A$2);ANNEE($A$2);"")
et en E2 =SI(ESTNUM(A2);DATE(D2;B2;C2);DATEVAL(A2))
en F2 =E2
F2 pour voir le résultat et le tout au format date
voici ma petite contribution après quelque recherche
sinon j'ai une autre question:
j'ai cette formule, c'est un extrait de la formule mais je voudrais savoir comment entrer un variable dans la partie (Tableau1[nom de l'élève]<>"") comment faire pour aller chercher la valeur du nom de l'élève qui se trouve sur une autre feuille exemple du genre (Tableau1[Feuil1! A2]<>"") ce qui ne fonctionne pas.
comment dois je écrire entre les crochet que le nom correspond a celui que j'ai mis dans la cellule A2
=SOMMEPROD((Tableau1[dimension évaluées]=A12)*(Tableau1[compétence]=C12)*(Tableau1[période]=$D$9)*(Tableau1[nom de l'élève]<>"")*Tableau1[nb de note]))

merci

@gwenicrocket 

Vous pouvez remplacer

 

Tableau1[nom de l'élève]

 

par

 

INDIRECT("Tableau1["&Feuil1!A2&"]")

bonjour, j'ai essayé mais cela ne fonctionne pas
quand j'appui sur entrée ça m'ouvre une fenêtre mettre les valeur à jour Feuil1 pour aller chercher un fichier sur l'ordi