IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Routine pour appliquer un filtre en VBA au niveau d'une date sur Tableau Croisé Dynamique [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Conseiller
    Inscrit en
    Septembre 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Conseiller

    Informations forums :
    Inscription : Septembre 2017
    Messages : 2
    Par défaut Routine pour appliquer un filtre en VBA au niveau d'une date sur Tableau Croisé Dynamique
    Bonjour,

    J'ai un petit problème à soumettre, je cherche à mettre en place une routine qui permettra à un utilisateur de saisir une date pour qu'ensuite un filtre soit appliqué avec la valeur de cette saisie au niveau d'un Tableau Croisé Dynamique.
    La routine pour la saisie d'une date fonctionne, mais celle qui permet d'appliquer un filtre par rapport à cette date au niveau du tableau croisé dynamique ne fonctionne pas correctement.

    Voici les deux routines en question :

    Routine pour saisir une date:

    Module 3

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub EntrerValeurPourSaisieDate()
     
    Dim message, title, defaultValue As String Dim myValue As String ' Set prompt.
    message = "Entrer une date correspondant au lundi de la semaine recherchée au format année-mois-jour"
    ' Set title.
    title = "Saisie de la semaine"
    defaultValue = "2017-01-02"   ' Set default value.
     
    ' Display message, title, and default value.
    myValue = InputBox(message, title, defaultValue) ' If user has clicked Cancel, set myValue to defaultValue If myValue = "" Then myValue = defaultValue
     
    Range("G2").Value = myValue
     
     
    End Sub
    Routine pour mettre à jour le filtre du tableau croisé dynamique selon la date obtenue avec l'autre routine


    Module 2 VBA

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Sub TCD_Filtre_Date_AD_En_Travail()
        Application.ScreenUpdating = True
        On Error Resume Next
        Range("A2").Select
        ActiveSheet.PivotTables("Tableau croisé dynamique2").ClearAllFilters
        ActiveSheet.PivotTables("Tableau croisé dynamique2").Refresh
        [A1] = ActiveSheet.PivotTables(2).Name
     
        With ActiveSheet.PivotTables(Range("A1").Text).PivotFields("Semaine")
     
            For i = G2 To ActiveSheet.PivotTables(Range("A1").Text).PivotFields("Directeur").PivotItems.Count '- 1
                If Range("G2").Value = .PivotItems(i).Value Then .PivotItems([G2].Value).Visible = True Else .PivotItems(i).Visible = False
     
            Next
        End With
     
        Application.ScreenUpdating = True
    End Sub

    Vous trouverez ci-joint une copie du fichier avec lequel j'effectue les essais : Copie de alain TEST21-09-2017.xlsm

    Merci d'avance pour votre aide!

    Alain

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Alain Desabrais Voir le message
    Bonjour,

    J'ai modifié votre fichier pour y mettre réellement le numéro de semaine dans votre onglet Feuil2. Et j'ai créé les deux segments Semaine et Directeur comme dans le vidage d'écran ci-dessous :

    Un clic sur chacun des items des segments met jour le TCD. Dans cette solution, je n'utilise pas VBA.

    Pièce jointe 315561

  3. #3
    Candidat au Club
    Homme Profil pro
    Conseiller
    Inscrit en
    Septembre 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Conseiller

    Informations forums :
    Inscription : Septembre 2017
    Messages : 2
    Par défaut Super idée!
    Merci M. Kergresse, j'aime la solution que vous me proposez!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Macro VBA de mise en forme d'un tableau croisé dynamique
    Par JadeDB dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 01/11/2016, 16h32
  2. Lire sous VBA des étiquettes de ligne d'un tableau croisé dynamique
    Par clem256 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/10/2013, 16h01
  3. [XL-2007] VBA Excel : récupérer le nom d'un tableau croisé dynamique
    Par koobcam dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/10/2011, 16h16
  4. [XL-2007] Filtre sur tableau croisé dynamique
    Par Flower123 dans le forum Excel
    Réponses: 2
    Dernier message: 18/06/2009, 17h14
  5. Pb de chemin en VBA excel sur tableau croisé dynamique
    Par hiline6 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/02/2007, 15h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo