XL 2010 Filtre automatique par mois

Seb

XLDnaute Occasionnel
Bonsoir le forum,

Je galère à faire un filtre automatique.

J'ai un colonne avec des dates que je voudrais filtrer par mois. Les années de sont pas forcément les memes. Je veux juste les valeurs de janvier, février …. peut importe l'année que c'est. Voila mon bout de code :



For i = LBound(a) To UBound(a) '0 To 1
Set ws = Worksheets(CStr(a(i)))
For j = 1 To UBound(ZoneB)
For k = 1 To UBound(iMois) ( K prend la valeur de 1 à 12 pour les 12 mois)


(C 'EST LA QUE CA BUGUE)
'[Filtre Automatique /Date]
ws.Activate
ws.Range("$A$1:$K$3000").AutoFilter Field:=2, Criteria1:= _





Select Case i
Case 0
Zone(j, k) = Application.Subtotal(3, ws.Range("E:E")) - 1
Zone(j, k + 2) = Application.Subtotal(9, ws.Range("E:E"))
Case 1
Zone(j, k + 1) = Application.Subtotal(3, ws.Range("E:E")) - 1
Zone(j, k + 3) = Application.Subtotal(9, ws.Range("E:E"))
End Select
Next
Next
ws.ShowAllData
Next i
etc ………


je voulais utiliser la fonction "xlFilterAllDatesInPeriodJanuary , february etc... mais je sais pas comment l'adatper à l'interieur d'une boucle.




Merci beaucoup pour le coup de main

Seb
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum

Puisque tu parles de Filtre Automatique, alors automatiquement filtrons ;)
A tester sur une feuille vierge.
VB:
Sub test()
'21=Janvier, 22=Février ... 32=Décembre
Call gendatas
Filtrer 32
End Sub
Private Sub Filtrer(Mois As XlFilterAllDatesInPeriod)
ActiveSheet.Range("$A$1:$A$2033").AutoFilter Field:=1, Criteria1:=Mois, Operator:=xlFilterDynamic
End Sub
Sub gendatas()
Cells.Clear
[A1] = "DATES": [A2] = "01/01/2018": [A2].DataSeries 2, 3, 1, 1, 44699, 0
End Sub
NB: gendatas est une macro juste pour créer des données de test.
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Bonjour,

Exemple

Code:
Sub FiltreMoisAn()
  mois = 3: an = 2007
  ActiveSheet.Range("$A$5:$E$30").AutoFilter Field:=5, Operator:= _
  xlFilterValues, Criteria2:=Array(1, Format(DateSerial(an, mois, 1), "mm/dd/yyyy"))
End Sub

Pour extraire Janvier qq année:

Code:
Sub ExtraitJanvierTousAns()
    ActiveSheet.Range("$A$5:$E$33").AutoFilter Field:=5, Criteria1:=21, Operator:=xlFilterDynamic
End Sub

xlFilterAllDatesInPeriodJanuary=21

Pour une boucle pour tous les mois:

For m=21 To 21+12
....
Next m


jb
 

Pièces jointes

  • FiltreDate3.xls
    49.5 KB · Affichages: 38
Dernière édition:

Discussions similaires

Réponses
11
Affichages
286
Réponses
23
Affichages
1 K

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16