XL 2016 Filtre des donnés Excel suivant des conditions

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Tsimbina

XLDnaute Junior
Bonjour,

J'ai besoin d'aide pour faire VBA de filtre de donnée.

Les conditions du filtre son dans la feuille filtre les donnée à filtré sont dans la feuille Mouvement.
Même si, l'un des condition des filtre son rempli on peut valider.

Merci d'avance!
 

Pièces jointes

Solution
VB:
Sub Ellipse_Cliquer()
Dim i As Byte
Dim debut As String, fin As String, mois As String, element As String

With Sheets("Filtre")
    debut = Format(.Range("E9").Value, "\>\=mm/dd/yyyy")
    fin = Format(.Range("G9").Value, "\<\=mm/dd/yyyy")
    mois = .Range("E11").Value
    element = .Range("E13").Value
End With

'valeur null
If debut <> vbNullString Then jour = debut: i = 1
If fin <> vbNullString Then jour = fin: i = 1
If debut <> vbNullString And fin <> vbNullString Then i = 2

With Sheets("Mouvement").ListObjects(1)
    .AutoFilter.ShowAllData

    Select Case i
        Case Is = 1
            .Range.AutoFilter field:=1, Criteria1:=Array(1, jour)
        Case Is = 1
            .Range.AutoFilter field:=3, Operator:=xlAnd...
Bonjour,
On m'a donné un code vba mais le filtre date ne fonctionne pas quelqu'un peut m'aider s'il vous plais?
VB:
Sub Ellipse1_Cliquer()
Dim i As Byte
Dim debut As String, fin As String, mois As String, element As String

With Sheets("Filtre")
    debut = Format(.Range("E9").Value, "\>\=mm/dd/yyyy")
    fin = Format(.Range("G9").Value, "\<\=mm/dd/yyyy")
    mois = .Range("E11").Value
    element = .Range("E13").Value
End With

If debut <> vbNullString Then jour = debut: i = 1
If fin <> vbNullString Then jour = fin: i = 1
If debut <> vbNullString And fin <> vbNullString Then i = 2

With Sheets("Mouvement").ListObjects(1)
    .AutoFilter.ShowAllData

    Select Case i
        Case Is = 1
            .Range.AutoFilter Field:=1, Criteria1:=Array(1, jour)
        Case Is = 1
            .Range.AutoFilter Field:=1, Operator:=xlAnd, Criteria1:=debut, Criteria2:=fin
    End Select
    If element <> vbNullString Then .Range.AutoFilter Field:=2, Criteria1:=element
    If mois <> vbNullString Then .Range.AutoFilter Field:=9, Criteria1:=mois
End With
End Sub
 

Pièces jointes

VB:
Sub Ellipse_Cliquer()
Dim i As Byte
Dim debut As String, fin As String, mois As String, element As String

With Sheets("Filtre")
    debut = Format(.Range("E9").Value, "\>\=mm/dd/yyyy")
    fin = Format(.Range("G9").Value, "\<\=mm/dd/yyyy")
    mois = .Range("E11").Value
    element = .Range("E13").Value
End With

'valeur null
If debut <> vbNullString Then jour = debut: i = 1
If fin <> vbNullString Then jour = fin: i = 1
If debut <> vbNullString And fin <> vbNullString Then i = 2

With Sheets("Mouvement").ListObjects(1)
    .AutoFilter.ShowAllData

    Select Case i
        Case Is = 1
            .Range.AutoFilter field:=1, Criteria1:=Array(1, jour)
        Case Is = 1
            .Range.AutoFilter field:=3, Operator:=xlAnd, Criteria1:=debut, Criteria2:=fin
    End Select
    'filtre date
    If debut <> vbNullString Then .Range.AutoFilter field:=1, Criteria1:=debut, Operator:=xlAnd, Criteria2:=fin
    'filtre element
    If element <> vbNullString Then .Range.AutoFilter field:=2, Criteria1:=element
    'filtre mois
    If mois <> vbNullString Then .Range.AutoFilter field:=9, Criteria1:=mois
End With
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour