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 : 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 '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
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
Partager