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 :

Changer en masse les critères des Tableaux croisés dynamiques


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 55
    Points : 32
    Points
    32
    Par défaut Changer en masse les critères des Tableaux croisés dynamiques
    Bonjour,

    Je dois créer des reportings pour des agences une 100ène qui ont la même présentation, même nombre de feuille, même nombre de tableaux croisés dynamiques mêmes graphiques, même requête accèss (importation de données).
    La tache est assez répétitive, une fois que la présentation est validée, il faut l'a déployer pour les 99 autres..

    Je voulais savoir s'il était possible de changer tout en masse si le dénominateur, est commun? exemple agence de regroupement l'agence "nucléaire" la changer par l'agence Paris?

    Je récupère la commande Sql pour chaque Tcd

    J'ai souvent 4-5 tcd par feuille et en moyenne 10 feuille ce code est valable pour un tcd.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
    FROM `AG - Nb Clients litige`
    Where `agence de regroupement` like ('%nucléaire%')
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
    FROM `AG - Nb Clients litige`
    Where `agence de regroupement` like ('%Paris%')

    Comme indiqué j'ai 100 agence et une 50ène de tcd ce qui fait que pour un rapport pour les agence j'ai potentiellement 5 000 tcd à faire et à changer, c'est la raison pour laquelle je me permets de vous solliciter.

    Bonne journée à tous en esperant avoir de vos nouvelles..


    Anthooooony

  2. #2
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 420
    Points : 16 264
    Points
    16 264
    Par défaut
    Bonjour

    Si tu as une liste des agences tu peux faire un boucle pour passer d'un nom dans la liste à l'autre et donc coder le sql en conséquence.

    Tu peux éventuellement créer cette liste par une requête mais il y a sans doute une table des agences dans ta base.

    Mais je n'ai peut-être pas compris la question...
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 55
    Points : 32
    Points
    32
    Par défaut
    Bonjour

    78chris d'avoir pris de ton temps pour me répondre.

    En faite, je ne sais comment utiliser un boucle agence en VBA. En faite, mon document est décomposé en plusieurs parties.

    Code SQL Par tableau croisé dynamique(X50 + graphique) et dans "Texte de la commande " dans la propriété du tcd j’intègre la commande Sql
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
    FROM `AG - Nb Clients litige`
    Where `agence de regroupement` like ('%nucléaire%')

    Et d'un autre côté j'ai une commande VBA ) la cloture du fichier pour créer un pdf avant l'envoi aux différents destinataires.

    Mais bon ça me parait difficile de modifier des bouts code SQL d'un côté et de l'autre, plutot que des codes vba ou j'aurais pu faire remplacer nucléaire par Paris.

    Je suis un peu perdu en faite..

  4. #4
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 420
    Points : 16 264
    Points
    16 264
    Par défaut
    Bonjour

    Où récupères-tu la commande SQL ?
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 55
    Points : 32
    Points
    32
    Par défaut
    REBonjour 78chris,

    Je résume le contexte.

    Je récupère chaque mois une base de donnée des litiges de ma société.
    La BDD est historisée dans des tables Access où s'en découlent des requêtes.

    --------

    Ensuite je dois créer des présentations sur Excel, avec plusieurs pages en avec plusieurs tableaux croisés dynamiques par page.

    --------
    Pour créer un tableau croisé je fais "importation de donnée", je récupère la requête Access que je veux. Je crée la présentation Tcd et en parallèle je vais dans Access sur cette même requête en filtrant une agence, je fais SQL j'ai du coup la retranscription de ladite requête en SQL.
    Je retourne dans le TCD donnée - propriété - Définition - Texte de la commande et j'insere le la commande SQL. Cela permet de taper directement ou je veux, et d etre moins lourd en ressource.

    J'ai une 50 ène de tcd par Fichier Excel...

    Ou sinon je pourrais créer les tableaux en VBA et j'aurais qu'a modifier en faisant remplacer nucléaire par paris tout changerait d'un coup...
    Mais bon je ne suis pas du tout calé en VBA.

  6. #6
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 420
    Points : 16 264
    Points
    16 264
    Par défaut
    Re

    Déja tu n'as pas à importer les données de la requête dans Excel car tu peux construire un TCD directement sur la requête.

    De plus il est possible de mettre une valeur dans une cellule Excel et de paramétrer la requête grâce à cette valeur.

    Tu as un exemple ici http://www.excel-formations.fr/Trucs...s/ACCESS01.php
    mais lors du retour à Excel après la configuration Access (à faire une fois), il suffit de cocher Rapport de Tableau Croisé Dynamique au lieu de tableau comme dans ce truc et astuce.

    Une fois tes TCD construits et ton premier export PDF fait, tu changes la valeur servant de paramètre pour une autre agence et tu actualises les TCD. Tu n'as plus qu'à réexporter le PDF suivant.

    Cela fait moins de manips et pas de VBA.
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 55
    Points : 32
    Points
    32
    Par défaut
    Rebonjour,

    En faite, c'est comme ça que je les fait les Tcd, en passant par import de donnée en récupérant la requête Access.

    C'est vrai que je pourrais affecter un tableau croisé en fonction d'une valeur. Comme ça en page de garde je choisis mon agence, et les tableaux croisés bougerons.

    Merci encore

Discussions similaires

  1. Réponses: 0
    Dernier message: 28/10/2013, 17h44
  2. Réponses: 1
    Dernier message: 11/07/2011, 10h54
  3. [XL-2007] Synchroniser les filtres des tableaux croisés dynamiques du classeur
    Par babelouze dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 02/03/2010, 19h20
  4. [XL-2003] Instabilité des classeurs avec des Tableaux Croisés Dynamiques
    Par oohcalme dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 04/08/2009, 11h45
  5. Faire des tableaux croisés dynamique
    Par richard038 dans le forum Bases de données
    Réponses: 6
    Dernier message: 12/04/2006, 21h51

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