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 :

Optimiser la sélection des PivotItems dans un TCD


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    analyste bancaire
    Inscrit en
    Novembre 2020
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : analyste bancaire
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2020
    Messages : 1
    Par défaut Optimiser la sélection des PivotItems dans un TCD
    Bonjour à tous,
    Tout d'abord je vous précise que ne ne suis par un expert en programmation mais un autodidacte motivé.
    Je souhaite mettre à disposition de quelques centaines d'utilisateurs un utilitaire excel 2016 générant des graphs pour des points de vente choisit dans une liste déroulante.
    En PJ le jeux de données utilisé, par souci de confidentialité, j'ai remplacé les points de vente (Région) par des numéros fictifs.
    Mon résultat fonctionne mais le temps d'exécution de ma macro est trop long, 2 minutes 30 chrono. C'est long pour un utilisateur, même avec le useform d'attente que j'ai intégré.
    La partie du code concerné est la suivante (j'ai vérifié en l'exécutant pas à pas) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Région")
            For i = 1 To ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Région").PivotItems.Count
                    If .PivotItems(i).Value Like ("*" & ChoixBtn & "*") Or .PivotItems(i).Value = ("TOTAL") Then
                        .PivotItems(i).Visible = True
                    Else
                        .PivotItems(i).Visible = False
                    End If
            Next i
        End With
    Ici, je veux sélectionner uniquement 2 valeurs de mon PivotFields ("Région") : TOTAL systématiquement et la valeur choisit par l'utilisateur dans le menu déroulant (= la variable ChoixBtn)
    Mon code lit toutes les valeurs du PivotFields ("Région"), soit env 5000 lignes, et met Visible uniquement les 2 retenues : ça marche mais c'est long...
    J'ai cherché dans de nombreux forum mais on me propose toujours de passer par une boucle, ce qui revient à mon problème
    J'ai également essayé avec AddField mais je ne peux en ajouter qu'un seul...
    Auriez-vous une meilleure solution à me proposer ?
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Réponses: 11
    Dernier message: 27/03/2011, 15h01
  2. [E-03] Classer des colonnes dans un TCD
    Par neiluj26 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/03/2009, 10h32
  3. [E-03] Ajouter des colonnes dans un TCD
    Par zaza45 dans le forum Excel
    Réponses: 1
    Dernier message: 22/09/2008, 14h27
  4. [Delphi7] Sélection des mots dans Word
    Par Tcheby dans le forum Composants VCL
    Réponses: 0
    Dernier message: 07/11/2007, 12h33
  5. Réponses: 2
    Dernier message: 09/11/2006, 07h37

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