Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…