Le filtrage entre deux dates dans le tableau croisé dynamique à l'aide de VBA. Royaume-UNI à NOUS de format de date en question

J'ai trouvé une solution de contournement pour cela, mais si quelqu'un a une manière plus propre de faire cela, je serais intéressé/reconnaissant.

J'ai deux cases sur une feuille de calcul, appelé DateFrom et DateTo pour une utilisation avec un filtre de Date dans un tableau croisé dynamique. Les deux sont dans le format JJ/MM/AAAA. Les données alimentant le tableau est aussi dans ce format. Le tableau croisé dynamique renvoie également les dates dans le même format. Tous mes paramètres sont les anglais du royaume-UNI et j'ai essayé sur une autre machine avec les mêmes résultats.

Je puis utiliser le code suivant pour alimenter le tableau croisé dynamique:

ActiveSheet.PivotTables("Pivot").PivotFields("Date").PivotFilters. _
    Add Type:=xlDateBetween, Value1:=Range("DateFrom").Value, Value2:=Range("DateTo").Value

Le code lit les deux cellules, comme une chaîne de caractères, puis les applique à la table pivot comme si elles étaient au format AMÉRICAIN (MM/JJ/AAAA). Ridicule!

C'est de cette façon, je suis autour d'elle:

J'ai eu deux autres cellules en regardant ces deux cellules au format numérique et visant le code lors de ces deux cellules à la place. Pas sûr du tout de vous, mais je lutte pour convertir une date en numérique dans ma tête...!

Si vous avez une solution simplifiée et/ou une explication à cette totale de folie, je serais bien obligé!

OriginalL'auteur JJ Moore | 2014-04-08