XL 2016 Filtre des donnés Excel suivant des conditions

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

  • MOVEMENT DE STOCK.xlsx
    16 KB · Affichages: 14
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...

Tsimbina

XLDnaute Junior
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

  • MOVEMENT DE STOCK.xlsm
    24.1 KB · Affichages: 3

Tsimbina

XLDnaute Junior
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
 

Discussions similaires

Réponses
16
Affichages
451
Réponses
69
Affichages
4 K
Réponses
12
Affichages
287

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 811
dernier inscrit
caroline29260