Filtrer par date avec une macro VBA
Salut !
J’ai écrit ce code VBA pour filtrer par date. Mais quand j’exécute la macro les dates filtrées ne correspondent pas du tout. J’ai l’impression que le mois et le jour sont inversés dans le fichier à filtrer. Pour exemple la date de début (B1) est le 08/01/24 et la date de fin (B2) est le 12/01/24 mais dans le fichier à filtrer j’obtiens les dates entre 01.08.24 et 01.12.24. Les dates sont dans le même format et bien en format date.
Des idées ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| Sub FiltrerParDate()
Dim wsSuivi As Worksheet
Dim startDate As Date, endDate As Date
Dim currentFilterMode As Boolean
' Accéder à l'onglet "STABILITY RUNNING" dans le fichier "New Suivi Stability in progress"
Set wsSuivi = Workbooks("New Suivi Stability in progress.xlsx").Sheets("STABILITY RUNNING")
' Récupérer les dates de début et de fin de la feuille "code VBA"
startDate = ThisWorkbook.Sheets("code VBA").Range("B1").Value
endDate = ThisWorkbook.Sheets("code VBA").Range("B2").Value
' Si les dates ne sont pas vides et sont valides
If IsDate(startDate) And IsDate(endDate) Then
' Enregistrer l'état actuel des filtres
currentFilterMode = wsSuivi.AutoFilterMode
' Réinitialiser les filtres sans les supprimer
wsSuivi.AutoFilter.ShowAllData
' Appliquer le filtre à la colonne W
wsSuivi.Rows("1:" & wsSuivi.Rows.Count).AutoFilter Field:=23, _
Criteria1:=">=" & startDate, Operator:=xlAnd, Criteria2:="<=" & endDate
Else
MsgBox "Format de date incorrect ou dates manquantes."
End If
End Sub |