Bonjour,

J'ai une question concernant les filtres excel.

Je m'explique,

J'aimerai filtrer par un bouton les données qui:
- contiennent "rupture" en colonne D
- Sont vides en colonne H
- Sont vides en colonne R
- Sont <= a la date du jour en colonne G
- Sont <= a la date du jour en colonne Q


Jusque la pas trop dur de coder ceci. Le problème c'est que j'aimerai que le filtre affiche toutes les lignes qui répondent à une condition. Le truc c'est qu'imaginons que la ligne soit vide en H, et <= date du jour en G mais que pas vide en R alors la ligne ne s'affiche pas alors qu'il faudrait que cette ligne s'affiche

disons qu'il y a deux tests distincts: il faut afficher toutes les lignes qui
- contiennent "rupture" en colonne D
et
- Sont vides en colonne H
- Sont <= a la date du jour en colonne G
ou
- Sont vides en colonne R
- Sont <= a la date du jour en colonne Q

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
Sub Ruptures_PETRI_CQ()
Application.ScreenUpdating = False
ThisWorkbook.Worksheets("Liste PETRI").Activate
ThisWorkbook.Worksheets("Liste PETRI").Range("A2:AC2").AutoFilter Field:=4, Criteria1:="Rupture"
ThisWorkbook.Worksheets("Liste PETRI").Range("A2:AC2").AutoFilter Field:=7, Criteria1:="<=" & Application.RoundUp(ActiveSheet.Cells(1, 1).Value, 0), Operator:=xlAnd
ThisWorkbook.Worksheets("Liste PETRI").Range("A2:AC2").AutoFilter Field:=8, Criteria1:="="
ThisWorkbook.Worksheets("Liste PETRI").Range("A2:AC2").AutoFilter Field:=17, Criteria1:="<=" & Application.RoundUp(ActiveSheet.Cells(1, 1).Value, 0), Operator:=xlOr
ThisWorkbook.Worksheets("Liste PETRI").Range("A2:AC2").AutoFilter Field:=18, Criteria1:="=", Operator:=xlAnd
ThisWorkbook.Worksheets("Liste PETRI").Range("A2:AC2").AutoFilter Field:=20, Criteria1:="="
ActiveSheet.Range("A3").Select
End Sub
pour info:ActiveSheet.Cells(1, 1).Value contient la formule =MAINTENANT()


Faut il passer par des filtres élaborés? Si oui, est il possible de définir les critères directement dans la macro sans passer par une cellule?

Merci d'avance de votre aide