Filtrer tcd excel 2010 entre 2 dates erreur 1004 date non valide [Résolu]

- - Dernière réponse :  ykerros - 23 déc. 2012 à 15:13
Bonjour,

J'ai passé des mois sans avoir à poster rien qu'en vous lisant!
Je suis débutant bien que j'arrive à me débrouiller mais là, je suis coincé!

Je souhaite effectuer un filtre sur un tableau croisé dynamique via un userform dans excel 2010.
Dans ce userform, j'ai 2 DTPicker qui déterminent les dates de début et de fin à prendre en compte dans le filtre de mon TCD.

J'ai beau essayé différentes méthodes, je me retrouve toujours avec cette erreur 1004: "la date tapée n'est pas valide"

Sheets("TCDESPQ").Activate
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Dte").ClearAllFilters
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Dte").PivotFilters.Add Type:=xlDateBetween, Value1:=DTPicker1.Value, Value2:=DTPicker2.Value
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Produit").ClearAllFilters
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Produit").PivotFilters.Add Type:=xlCaptionEquals, Value1:=ComboBox1.Value
Application.DisplayAlerts = False
Sheets("Graph2").ChartObjects("EvoStockProdQ").Activate
ActiveChart.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path _
& "\Fichiers Pdf" & "Evolution stock produits Graph Q" & ".pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True
Application.DisplayAlerts = True


Ceci est un de mes essais qui ne marchent pas.
Le seul qui marche mais qui est figé sans mes DTPicker, c'est:

Sheets("TCDESPQ").Activate
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Dte").ClearAllFilters
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Dte").PivotFilters.Add Type:=xlDateBetween, Value1:="18/12/2012", Value2:="21/12/2012"
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Produit").ClearAllFilters
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Produit").PivotFilters.Add Type:=xlCaptionEquals, Value1:=ComboBox1.Value
Application.DisplayAlerts = False
Sheets("Graph2").ChartObjects("EvoStockProdQ").Activate
ActiveChart.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path _
& "\Fichiers Pdf" & "Evolution stock produits Graph Q" & ".pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True
Application.DisplayAlerts = True


Quelqu'un a t'il une solution sur ce problème de format?

J'ai aussi essayé avec des variables "as date" formatées avec format (DTPicker1.value, "dd/mm/yyyy") mais sans plus de succès...
Afficher la suite 

1 réponse

0
Merci
Hello,

J'ai continué à chercher la solution en attendant vos lumières et j'ai trouvé la combinaison qui fonctionne (sans vraiment savoir pourquoi des méthodes différentes avec les mêmes éléments ne marchaient pas???).
Voici le code qui fonctionne pour les usagers du forum:
[b]Dim madate1 As Date
Dim madate2 As Date/b
Sheets("TCDESPQ").Activate
[b]madate1 =  DTPicker1.Value
madate2 = DTPicker2.Value/b
MsgBox madate1 & Chr(10) & madate2
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Dte").ClearAllFilters
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Dte").PivotFilters.Add Type:=xlDateBetween,  Value1:=FormatDateTime(madate1, vbShortDate), Value2:=FormatDateTime(madate2, vbShortDate) 
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Produit").ClearAllFilters
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Produit").PivotFilters.Add Type: =xlCaptionEquals, Value1:=ComboBox1.Value
Application.DisplayAlerts = False
Sheets("Graph2").ChartObjects("EvoStockProdQ").Activate
ActiveChart.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path _
& "\Fichiers Pdf" & "Evolution stock produits Graph Q" & ".pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True
Application.DisplayAlerts = True

Commenter la réponse de ykerros