Bonjour tout le monde,

Je réalise une timbreuse sous Excel et j'ai un soucis de filtrage au niveau du temps(dates).

C'est une histoire d'Autofilter. Je désire n'afficher que les timbrage plus vieux que xDateHeure.

Le soucis c'est que quand j'applique mon Autofilter par VBA je n'ai aucun résultat. Une fois appliqué je clique dessus(sur l'entête de colonne) et le valide à la souris sans changer de paramètres et paf ! Les résultats désirés sont là.

Voici le code (A savoir que j'ai essayé d'appliquer la méthode de la date numérique mais ça ne foncitonne pas mieux...)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
28
29
30
31
32
33
34
35
Sub ajoutFactureDonneesBrutes(strDateDebut As String, strDateFin As String)
 
    'Effacer les filtres en gérant l'erreur s'il n'y a pas de filtres déjà définis
 
    strDateDebut = CDate(strDateDebut) 'Actuellement stocké sous le format jj.mm.yyyy hh:mm:ss
    strDateFin = CDate(strDateFin)
    Worksheets("Données Brutes").Visible = True
    Worksheets("Données Brutes").Activate
 
    On Error Resume Next
    ActiveSheet.ShowAllData
    On Error GoTo 0
 
    'N'afficher que le client sélectionné dans le tableau et les timbrages complets (Date Début et fin)
    iChampClient = ActiveSheet.ListObjects("DataBrutes").ListColumns("Client").Index
    iChampDateHeureFin = ActiveSheet.ListObjects("DataBrutes").ListColumns("Date Heure Fin").Index
    iChampDateHeureDebut = ActiveSheet.ListObjects("DataBrutes").ListColumns("Date Heure Début").Index
 
    'ActiveSheet.ListObjects("DataBrutes").Range.AutoFilter Field:=iChampClient, Criteria1:=strClient
    ActiveSheet.ListObjects("DataBrutes").Range.AutoFilter Field:=iChampDateHeureDebut,  Criteria1:=">" & strDateDebut , Operator:=xlFilterValues 'xlAnd ne fonctionne pas mieux.  <---------------------------------
    ActiveSheet.ListObjects("DataBrutes").Range.AutoFilter Field:=iChampDateHeureFin, Criteria1:="<" & strDateFin, Operator:=xlFilterValues 'clng(strDateDebut) non plus et clng(CDbl(strDateDebut) Pas mieux ... <--------------------------
 
    'Trier par de la date la moins récente à la plus récente ce nouveau tableau
        With ActiveSheet.ListObjects("DataBrutes").Sort
        .SortFields.Clear
        .SortFields.Add Key:=Range("DataBrutes[Date Heure Début]"), SortOn:=xlSortOnValues, Order:=xlAscending
        .Header = xlYes
        .Apply
        End With
 
    'Vérifie que les filtres ont trouvés au moins un résultat de travail pour le client sélectionné
    If Range("A1", "A1000000").SpecialCells(xlCellTypeVisible).Count = 1 Then
     '...
    End If
End Sub
Cela fait maintenant près de 5 heures que je hurle à l'intérieur de moi-même, j'ai beau lutter, je n'y arrive pas...
Alors si quelqu'un de la communauté pouvait m'aider ça serait formidable ! siouplait