Présélectionner une date dans un Tcd

FGE72

XLDnaute Nouveau
Bonjour à tous,

J'ai un tcd comportant un filtre de rapport permettant de choisir des dates.

Je voudrais qu'à l'ouverture du classeur ce filtre présélectionne la plus récente des dates.
Cette date (ex: mar 22/04/2014) se situe dans un range nommé MaxDate

J'ai donc écrit :

Dim Madate

Sheets("Tb01").Select

Madate = Format(Range("MaxDate"), "ddd dd/mm/yyyy")
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("DATE"). _
ClearAllFilters
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("DATE"). _
DataRange = Madate

Mais ça ne marche pô.

Merci par avance de vos lumières.

Bonne soirée,

François
 

FGE72

XLDnaute Nouveau
Re : Présélectionner une date dans un Tcd

Bonjour,

oulàlà ..

Un petit exemple en PJ sera en effet plus explicite.

Merci,
François
 

Pièces jointes

  • ChoixDansLaDate.xlsm
    21.7 KB · Affichages: 13
  • ChoixDansLaDate.xlsm
    21.7 KB · Affichages: 19
  • ChoixDansLaDate.xlsm
    21.7 KB · Affichages: 23

chris

XLDnaute Barbatruc
Re : Présélectionner une date dans un Tcd

Bonjour
Coucou Hasco;), Gardien de phare;)

Une solution sans macro avec une colonne supplémentaire et la source convertie en tableau pour plus d'efficacité du TCD.
 

Pièces jointes

  • ChoixDansLaDate.xlsm
    20.7 KB · Affichages: 29
  • ChoixDansLaDate.xlsm
    20.7 KB · Affichages: 26
  • ChoixDansLaDate.xlsm
    20.7 KB · Affichages: 25

FGE72

XLDnaute Nouveau
Re : Présélectionner une date dans un Tcd

Bonjour Chris,

Merci pour cette solution élégante !
Par curiosité toutefois, je voudrais bien savoir si une sélection de la date dans la liste est possible en VBA.

Merci encore,
François
 
G

Guest

Guest
Re : Présélectionner une date dans un Tcd

Bonjour,

Hello Chris:)

@FGE72: sur la base du tcd de Chris ceci semble fonctionner. Je dis semble car il y a souvent des problèmes avec la propriété .Visible de l'objet PivotItem.

A savoir: bien que la liste déroulante affiche les dates en français "mer 23/04/2014" en VBA le label (caption) et valeur (value) des pivotitems reste en anglais "Wed 23/04/2014". D'où dans la macro la fonction right(pvt.Caption,10)

Code:
Sub FiltrerDate()
'
Dim pvt As PivotItem
Dim strDate As String: strDate = Format(Range("MaxDate"), "dd/mm/yyyy")
'
    With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("DATE")
            .ClearAllFilters
            .EnableMultiplePageItems = False
            For Each pvt In .PivotItems
                 pvt.Visible = Right(pvt.Caption, 10) = strDate
            Next
    End With
End Sub

A+
 

FGE72

XLDnaute Nouveau
Re : Présélectionner une date dans un Tcd

Bonjour Hasco,

C'est astucieux, le résultats du filtre est correct mais dans la liste déroulante, j'ai "(Plusieurs éléments)" et non la date
elle-même.
Le pb vient bien du fait que les valeurs restent en anglais.
Il n'y a pas un "local:= false" à coller qque part ?

Merci en tout cas, c'est une avancée significative !
François
 

FGE72

XLDnaute Nouveau
Re : Présélectionner une date dans un Tcd

suite :
Méthode porcine :
j'ai mis mon Range("MaxDate") à la sauce anglaise : Wed 23/04/2014 à l'aide de la fonction TEXTE et d'un recherchev qui convertit lun en Mon, mar en Tue ...
et alors ma macro initiale fonctionne.
Merci de vos recherches qui ont alimenté ma reflexion te merci par avance si qqu'un trouve mieux.
Belle journée à tous,
François
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 489
Messages
2 088 854
Membres
103 975
dernier inscrit
denry