1 pièce(s) jointe(s)
Problème de filtrage de date
Bonjour, je sais que le problème est usuel mais je n'ai pas trouvé la solution.
J'ai fait le code suivant qui fonctionnait bien.
J'ai ajouté des données à une colonne existante (mais vide) du "Listobject" à filtrer et modifié une variable non utilisée dans le filtre.
Et mon filtrage ne fonctionne plus : aucune correspondance alors qu'il en existe.
Incompréhensible.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| 'Filtre avec la date au format US provenant du bouton cliqué
Dim DatClic As String
DatClic = Mid(Controls("LblJour" & IndexBoutonClic).Caption, 1 + InStr(Controls("LblJour" & IndexBoutonClic).Caption, Chr(10)))
'Filtre pour les différentes périodes : dates de certaines périodes
Dim PremierLundiAnnuel As Date
PremierLundiAnnuel = DateSerial(Range("_Annee").Value, 9, 1) - Weekday(DateSerial(Range("_Annee").Value, 9, 1), vbMonday) + 1
NoSemaineAnnuelle = (CDate(DatClic) - PremierLundiAnnuel) \ 7
Dim Period() As String
ReDim Period(1 To 3)
Period(1) = "ab" 'Toutes les semaines
Period(2) = "12" 'Tous les semestres
Period(3) = IIf(NoSemaineAnnuelle Mod 2 = 0, "a", "b") 'semaine a si N°Pair sinon
If CDate(DatClic) > Range("Semestre2").Value Then 'Test si on est au second semestre
ReDim Preserve Period(1 To 4) 'Si on est 2e semestre alors oui ajoute le code "2"
Period(4) = "2"
End If
' filtrage
Worksheets("Dates Annuelles Générées").ListObjects("TabHoraireHebdo").Range.AutoFilter Field:=1, Operator:=xlFilterValues, Criteria1:=Array(CDate(DatClic) + 15)
ActiveSheet.ListObjects("TabHoraireHebdo").Range.AutoFilter Field:=4, Criteria1:=Array(Period()), Operator:=xlFilterValues |
Pièce jointe 624555
j'ai mis "Criteria1" à la date au format texte version Français ou version US, j'ai converti la date texte avec "DateSERIAL()" ou "DateValue()" puis repasser au format chaine...
Rien n'y fait.
Avez-vous une solution ?
ESVBA
Merci à toi hyperion13 de te pencher sur mon problème
comment l'utilises-tu ?
J'ai déjà essayé. Peut-être mal ?
Code:
Criteria1:=Format(CLng(CDate(DatClic)), "mm/dd/yyyy")
La valeur de DatClic est extraite d'un bouton cliqué.
"CDate" donne bien une valeur numérique de la date au format Français.
Et même si je convertis en texte format US.
Aucune valeur du "Listobject" ne correspond plus...
ESVBA