Présélectionner une date dans un Tcd

  • Initiateur de la discussion Initiateur de la discussion FGE72
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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

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
 
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+
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour