Ajouter une variable dans un champs de page dans un TCD en vba

roulax

XLDnaute Nouveau
Bonjour,

J'ai un petit problème avec un tableau croisé dynamique que je suis en train de faire en vba.

Je veux ajouter un champ période dans la partie "page" de mon tableau, mais je ne veux pas rendre visible toutes les données mais seulement 1 qui se trouvera dans une cellule de ma feuille de calcul.
J'ai écris le code ci-dessous, mais il ne fonctionne pas avec ma variable "date1".
Il fonctionne avec une date donnée, 01/05/2010 par exemple.

With ActiveSheet.PivotTables("TCD5").PivotFields("Period")
.Orientation = xlPageField
.Position = 1
End With
Dim Date1 As Date
Date1 = Trim(ThisWorkbook.Sheets("Feuil1").Range("I3"))
ActiveSheet.PivotTables("TCD5").PivotFields("Period").CurrentPage = _
"Date1"

Une idée ?
 
G

Guest

Guest
Re : Ajouter une variable dans un champs de page dans un TCD en vba

Bonjour,

Code:
Trim(ThisWorkbook.Sheets("Feuil1").Range("I3"))

Renvoie un type String. Le conflit ne viendrait-il pas de là?
si ThisWorkbook.Sheets("Feuil1").Range("I3")) contient une date, pas besoin du Trim.

A+
 

Odesta

XLDnaute Impliqué
Re : Ajouter une variable dans un champs de page dans un TCD en vba

Bonjour
Peut être que le format date ne convient pas au TCD. Si vous essayez avec =Format(Date1;"dd/mm/yyyy") qu'est-ce que cela donne ?

Cdt
Olivier

EDIT Bonjour Hasco
Ma proposition est en contradiction avec celle d'Hasco. Je n'ai pas les compétences pour aller plus loin sans un fichier exemple.
 
Dernière édition:

Cousinhub

XLDnaute Barbatruc
Re : Ajouter une variable dans un champs de page dans un TCD en vba

Bonjour,

Hi, Ges :)

Pour que cela fonctionne bien, il faut effectivement que Date1 soit en "String"

Code:
With ActiveSheet.PivotTables("TCD5").PivotFields("Perio d")
.Orientation = xlPageField
.Position = 1
End With
Dim Date1 As String
Date1 = Trim(ThisWorkbook.Sheets("Feuil1").Range("I3"))
ActiveSheet.PivotTables("TCD5").PivotFields("Perio d").CurrentPage = _
Date1

Maintenant, comme le dit si bien Hasco, as-tu vraiment besoin du Trim? (je ne pense pas qu'il y ait d'espaces, dans tes dates.....)

Et supprime les " " pour Date1

bonne journée
 

roulax

XLDnaute Nouveau
Re : Ajouter une variable dans un champs de page dans un TCD en vba

Bjr Hasco, Odesta, bhbh,

Merci pour vos conseils,

Ce code fonctionne bien grâce à vous :

With ActiveSheet.PivotTables("TCD5").PivotFields("Period")
.Orientation = xlPageField
.Position = 1
End With
Dim Date1 As String
Date1 = (ThisWorkbook.Sheets("Feuil1").Range("I3"))
ActiveSheet.PivotTables("TCD5").PivotFields("Period").CurrentPage = Date1

Bonne journée
 
G

Guest

Guest
Re : Ajouter une variable dans un champs de page dans un TCD en vba

Re,

Hi, tricot rayé:D

Et pour bien faire nous pourrions:

Code:
If IsDate(ThisWorkbook.Sheets("Feuil1").Range("I3")) then
   ActiveSheet.PivotTables("TCD5").PivotFields("Perio d").CurrentPage=ThisWorkbook.Sheets("Feuil1").Range("I3").Text
End if

A+
 

Cousinhub

XLDnaute Barbatruc
Re : Ajouter une variable dans un champs de page dans un TCD en vba

Re-,

Tout à fait, mon "petit" celte.....

Aussi bizarre que cela puisse paraître, Excel n'en veut pas de dates,au format "Date" dans les champs de page d'un TCD...

Encore une ineptie de Redmond...
 

Discussions similaires

Statistiques des forums

Discussions
312 099
Messages
2 085 282
Membres
102 848
dernier inscrit
boum