TCD et Dates comprises

Bonjour,

et grand merci d'avance pour votre contribution !

J'utilise ce code pour filtrer un TCD mais j'ai l'erreur suivante

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("PERIODE")) Is Nothing Then

ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("DATE"). _
        ClearAllFilters
   * ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("DATE"). _
        PivotFilters.Add2 Type:=xlCaptionIsBetween, Value1:=CDate(Range("G2").Value), Value2:= _
        CDate(Range("H2").Value)

        Range("A2:Z2").Select
    ActiveWindow.Zoom = True

    Range("B4").Select
End If
End Sub

Erreur d’exécution '1004' à hauteur de l'*

"Format date incorrect"

Quelqu'un saurait me dire où ça coince dans mon code ?

Pour info : C'est pareil quand j'enlève la fonction CDATE()...

Merci encore

Bonjour,

Sans le fichier ce sera difficile !

J'envisagerais 2 pistes (à tester)

  • mettre tes dates en format standard (ou numérique)
  • ou bien
  • reprendre tes dates en texte en les mettant au format US, à savoir mois/jour/année

Dans certains cas, tu as beau faire un enregistrement de macro, cette dernière ne fonctionnera pas. Mystère ... excel enregistrera bien les dates au format FR mais pour relancer la macro il faudra inverser mois et jour.

- reprendre tes dates en texte en les mettant au format US, à savoir mois/jour/année

En effet, après application de la macro il prend les dates "inversées" format US, il est probable que tes dates ne sont plus des dates !

capture d ecran 689
4tcd-date.xlsm (18.69 Ko)

Pour corriger ce scmilblick

Sub Macro1()
Dim depuis As String
Dim jusque As String
    depuis = Right("00" & Month([_de]), 2) & "/" & Right("00" & Day([_de]), 2) & "/" & Year([_de])
    jusque = Right("00" & Month([_a]), 2) & "/" & Right("00" & Day([_a]), 2) & "/" & Year([_a])
    ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("date"). _
        PivotFilters.Add2 Type:=xlDateBetween, Value1:=CDate(depuis), Value2:=CDate(jusque)
End Sub

Bonjour à tous

Sachant qu'on filtre d'un clic par segment, quel intérêt de filtrer par VBA ?

Bonjour Chris

J'ai compris qu'il voulait filtrer suivant un événement de changement de date (que je n'ai pas reproduit dans mon exemple, le client n'ayant pas fourni de fichier), notamment entre le XX et le YY.

Est-ce qu'on peut le faire en un ou deux clics si les dates sont "éloignées" ?

Bonjour

Dans ces cas là j'ajoute une colonne à la source qui renvoie 0 ou 1 selon que la date est dans la tranche.

Ce champ placé en champ de page et préfiltré sur 1, permet de se contenter d'actualiser le TCD

Sinon PowerQuery, puisque 2016, peut le faire sans VBA en dehors de l'actualisation au changement de valeur dans PERIODE

ok merci

Bonjour à tous

merci à vous tous d'avoir pris du temps pour élucider mon problème.

Et j'ai finalement trouvé...

  ActiveSheet.PivotTables("PivotTable1").PivotFields("Date").ClearAllFilters
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Date").PivotFilters.Add2 _
        Type:=xlDateBetween, Value1:=(Str(Range("G2").Value)), Value2:=(Str(Range("H2").Value))

Cdlt,

Rechercher des sujets similaires à "tcd dates comprises"