Bonjour à tous,
J'ai trois cas de figure pour extraire une durée avec JourDépart et JourFin, limité par le 01/01/2012 comme borne inférieure et par le 31/12/2012 comme borne supérieure :
1) Un étendu qui commence le mois passé et prend fin le mois en cours.
Exp : du 25/11/2012 au 24/12/2012
Alors : JourDépart = 01/01/2012, JourFin = 24/12/2012
Durée = 24 j dans le mois de décembre.
2) Un étendu qui commence le mois en cours et prend fin le mois même.
Exp : du 02/12/2012 au 17/12/2012
Alors : JourDépart = 02/12/2012, JourFin = 17/12/2012
Durée = 16 j dans le mois de décembre.
3) Un étendu qui commence le mois en cours et prend fin le mois suivant.
Exp : du 28/12/2012 au 17/12/2012
Alors : JourDépart = 28/12/2012, JourFin = 31/12/2012
Durée = 4 j dans le mois de décembre.
En résumé, je ne définirais les extrémités de ma durée, depuis les étendus de dates, qu'avec les jours communs du mois de décembre et ceux des jours des étendus (les intersections des jours).
J’aimerais ajouter une condition dans le critère du champ 3 pour m’extraire les dates en colonne C qui ont le mois égal ou inférieur au mois en cours (<=12), et dans le critère du champ 4 pour m’extraire les dates en colonne D qui ont le mois égal ou supérieur au mois en cours (>=12).
Dans la colonne C, j’aurais des dates avec le mois de novembre (??/11/2012) et décembre (??/12/2012).
Dans la colonne D, j’aurais des dates avec le mois de décembre (??/12/2012) et janvier 2013 (??/01/2013).
Mais avec ce code :
Le filtre est toujours nul
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Sub Filtre() Dim NbLg As Long Dim Plg As Range If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData NbLg = Range("A2").End(xlDown).Row Set Plg = Range("A1:E" & NbLg) With Plg .AutoFilter field:=3, Criteria1:=">=" & CSng(CDate("01/12/2012")) .AutoFilter field:=4, Criteria1:="<=" & CSng(CDate("31/12/2012")) End With End Sub
Alors, comment résoudre cette problématique ?
Merci d’avance.
Partager