Problème de filtre avec plusieurs critères VBA.
Fitz_Chev
-
Frenchie83 Messages postés 2240 Date d'inscription Statut Membre Dernière intervention -
Frenchie83 Messages postés 2240 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un soucis tout bête mais je m'arrache les cheveux dessus depuis le début de l'après midi donc je viens vous demander un peu d'aide, car malré mes recherches, je ne trouve pas de réponse à mon problème.
J'ai un tableau dans lequel je veux filtrer, en VBA, les date contenues dans la colonne qui sont entre deux dates données. Jusque là pas de soucis, j'ai résolu mon soucis de format de date en passant par un Cdate, à mettre en place mon filtre pour que ça prenne entre les deux date, MAIS j'ai aussi besoin des cases vides, et là, je bloque!
Voilà ma ligne qui est en débug et je ne comprends pas pourquoi:
Pour vous donner une idée, cette ligne s'intègre juste après ce bout de code (pas forcement très joli mais fonctionnel):
Merci pour votre aide, je suis quasi sur que mon soucis viens d'Operator mais n'étant pas trop doué sur VBA, je m'en remet à vous.
J'ai un soucis tout bête mais je m'arrache les cheveux dessus depuis le début de l'après midi donc je viens vous demander un peu d'aide, car malré mes recherches, je ne trouve pas de réponse à mon problème.
J'ai un tableau dans lequel je veux filtrer, en VBA, les date contenues dans la colonne qui sont entre deux dates données. Jusque là pas de soucis, j'ai résolu mon soucis de format de date en passant par un Cdate, à mettre en place mon filtre pour que ça prenne entre les deux date, MAIS j'ai aussi besoin des cases vides, et là, je bloque!
Voilà ma ligne qui est en débug et je ne comprends pas pourquoi:
ActiveSheet.Range("$A$3:$AN" & derlig).AutoFilter Field:=14, Criteria1:=">=" & startdate2, Operator:=xlAnd, Criteria2:="<=" & enddate2, Operator:=xlOr, Criteria3:="="
Pour vous donner une idée, cette ligne s'intègre juste après ce bout de code (pas forcement très joli mais fonctionnel):
derlig = Range("A65536").End(xlUp).Row saisie_date: Date_1 = InputBox(Chr(13) & Chr(10) & Chr(13) & Chr(10) & " Saisissez la date du DEBUT de periode de la prime conquête(format JJ/MM/AAAA)", "Saisie de la date", Format(Date, "dd/mm/yyyy")) If Date_1 = "" Then Exit Sub End If If Not IsDate(Date_1) Then MsgBox "Format de date saisie incorrect !" GoTo saisie_date End If If Date_1 <> Format(Date_1, "dd/mm/yyyy") Then MsgBox "le format doit être jj/mm/aaaa !" GoTo saisie_date End If Date_2 = InputBox(Chr(13) & Chr(10) & Chr(13) & Chr(10) & " Saisissez la date de la FIN de periode de la prime conquête(format JJ/MM/AAAA)", "Saisie de la date", Format(Date, "dd/mm/yyyy")) If Date_2 = "" Then Exit Sub End If If Not IsDate(Date_2) Then MsgBox "Format de date saisie incorrect !" GoTo saisie_date End If If Date_2 <> Format(Date_2, "dd/mm/yyyy") Then MsgBox "le format doit être jj/mm/aaaa !" GoTo saisie_date End If StartDate = CDate(Format(Date_1, "dd/mm/yyyy")) EndDate = CDate(Format(Date_2, "dd/mm/yyyy")) Dim startdate2 As Single startdate2 = StartDate Dim enddate2 As Single enddate2 = EndDate
Merci pour votre aide, je suis quasi sur que mon soucis viens d'Operator mais n'étant pas trop doué sur VBA, je m'en remet à vous.
A voir également:
- Problème de filtre avec plusieurs critères VBA.
- Photo filtre 7 gratuit - Télécharger - Retouche d'image
- Filtre whatsapp - Accueil - Messagerie instantanée
- Filtre teams - Accueil - Visio
- Filtre manga - Accueil - TikTok
- Excel compter cellule couleur sans vba - Guide
2 réponses
Bonjour
Comme ceci peut-être:
Cdlt
Comme ceci peut-être:
Startdate = ">=" & Format(Date_1, "dd/mm/yyyy") enddate = "<=" & Format(Date_2, "dd/mm/yyyy") ActiveSheet.Range("$A$3:$AN" & derlig).AutoFilter Field:=1, Criteria1:=Startdate, Operator:=xlAnd, Criteria2:=enddate
Cdlt
Bonjour
Avec cette méthode ça fonctionne.
Avant d'appliquer le filtre, remplacez les cellules vides de la colonne à filtrer par une valeur quelconque (un signe particulier: %; $, etc..).
Attention au format de date (mm/dd/yyyy)
A tester
Cdlt
Avec cette méthode ça fonctionne.
Avant d'appliquer le filtre, remplacez les cellules vides de la colonne à filtrer par une valeur quelconque (un signe particulier: %; $, etc..).
Attention au format de date (mm/dd/yyyy)
Startdate = Format(Date_1, "mm/dd/yyyy") Enddate = Format(Date_2, "mm/dd/yyyy") ActiveSheet.Range("$A$3:$AN" & derlig).AutoFilter Field:=14, Criteria1:=Array( _ "$"), Operator:=xlFilterValues, Criteria2:=Array(2, Startdate, 2, Enddate)
A tester
Cdlt
Je voudrais juste ajouter un troisième critère cellule vide