Choisir des dates dans un filtre

Bonjour,

J'ai créé une macro seulement elle semble fonctionner uniquement sur mon ordinateur et non pas sur celui de mes collègues. En sachant que j'ai une version 32bits de excel et eux une version 64bits.

J'essaie dans la colonne 9 de filtrer les dates définies plus tôt :

Mois = Sheets("general").Range("B2")
Annee = Sheets("general").Range("C2")
nbj = Sheets("general").Range("D2")

...

ActiveSheet.Range("$A:$X").AutoFilter Field:=9, Operator:=xlFilterValues, Criteria2:=Array(1, Mois & "/" & nbj & "/" & Annee)

Et je n'arrive pas à comprendre pourquoi ceci ne fonctionne pas.
Comment changer cette dernière ligne de code de telle sorte que dans ma colonne 9, filtre uniquement le mois défini en "Sheets("general").Range("B2")", l'année définie en "Sheets("general").Range("C2")" et le nombre de jour en "Sheets("general").Range("D2")"

En vous remerciant

Bonsoir benjamind, le forum,

A tester:

Mois = Sheets("general").Range("B2")
Annee = Sheets("general").Range("C2")
nbj = Sheets("general").Range("D2")
critère = DateSerial(Annee, Mois, nbj)
...

ActiveSheet.Range("$A:$X").AutoFilter Field:=9, Criteria1:="=" & critère

Cordialement,

Merci cela fonctionne parfaitement,

Bonjour, cela fonctionne effectivement mais je ne filtre qu'un seul jour du mois de la variable "mois". Le jour choisi est la variable "nbj". Or je voudrais filtrer tous les jours compris dans le mois.

Bonjour,

je voudrais filtrer tous les jours compris dans le mois

A tester:

Mois complet,

Sub filtrage()
 Dim mois, annee, dateDeb, dateFin
   mois = Sheets("general").Range("B2").Value '...mois
  annee = Sheets("general").Range("C2").Value '...année
dateDeb = CLng(DateSerial(annee, mois, 1)) '......premier jour du mois
dateFin = CLng(DateSerial(annee, mois + 1, 1)) '..premier jour du mois suivant

 ActiveSheet.Range("$A:$X").AutoFilter Field:=9, _
  Criteria1:=">=" & dateDeb, Operator:=xlAnd, Criteria2:="<" & dateFin
End Sub

Sinon, de nbj à la fin du mois:

Sub filtrage()
 Dim mois, annee, nbj, dateDeb, dateFin
   mois = Sheets("general").Range("B2").Value '...mois
  annee = Sheets("general").Range("C2").Value '...année
  nbj = Sheets("general").Range("D2").Value '.....jour
dateDeb = CLng(DateSerial(annee, mois, nbj)) '....jour de départ du mois
dateFin = CLng(DateSerial(annee, mois + 1, 1)) '..premier jour du mois suivant

 ActiveSheet.Range("$A:$X").AutoFilter Field:=9, _
  Criteria1:=">=" & dateDeb, Operator:=xlAnd, Criteria2:="<" & dateFin
End Sub

Cordialement,

Bonjour,
Une autre approche.
Pour l'exemple, les données sont sous forme de tableau structuré.
Cdlt.

10benjamind.xlsm (23.28 Ko)
Option Explicit

Dim lo As ListObject

Sub FilterData()
Dim iYear As Integer, iMonth As Integer, strDate As String

    With ActiveSheet
        Set lo = .ListObjects(1)
        If lo.ShowAutoFilter Then lo.AutoFilter.ShowAllData
        iYear = .Cells(1, 2).Value: iMonth = .Cells(2, 2)
        strDate = Format(DateSerial(iYear, iMonth, 1), "m/d/yyyy")
    End With

    lo.Range.AutoFilter Field:=1, Operator:=xlFilterValues, Criteria2:=Array(1, strDate)

End Sub

Tout est bon à présent, je vous remercie pour votre aide !

Rechercher des sujets similaires à "choisir dates filtre"