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 :

Source données TDC [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 273
    Points : 91
    Points
    91
    Par défaut Source données TDC
    Bonjour à tous et à toutes,

    J'ai un soucis pour mettre à jour mon TDC, avant de le rafraîchir je dois redimensionner ma source de donnée car mon nombre de lignes peut changer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("TDCPPA").PivotTables("TDC prio").SourceData = " 'PPA SYNTHESES Priorités!'R4C3:R19C10"
    Mon soucis viens du faite que mon nom d'onglet contient des espaces, car quand je renomme l'onglet en PPASYNTHESESPriorités le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("TDCPPA").PivotTables("TDC prio").SourceData = "PPASYNTHESESPriorités!R4C3:R19C10"
    Fonctionne.

    Pouvez-vous m'aider?

    Merci d'avance

  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 mets ta source sous forme de liste (onglet Données, Créer une liste) et les données sont bien ajoutées au niveau du * bleu, la source du TCD s'auto-adaptera.

    Sinon, il faut encadrer le nom d'onglet par des apostrophes : le ! ne doit pas être inclus dans les apostrophes et vérifie aussi tes espaces entre " et '.
    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
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 273
    Points : 91
    Points
    91
    Par défaut
    J'ai essayé ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("TDCPPA").PivotTables("TDC prio").SourceData = "'PPA SYNTHESES Priorités'!R4C3:R19C10"
    mais ça me fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Le rapport de tableau croisé dynamique à été enregistré sans les donnée sources. Utilisez la commande Actualiser les données pour mettre à jour le rapport.

  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
    Re

    Et si tu le fais avec l'enregistreur macro, cela donne quoi ?
    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
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 273
    Points : 91
    Points
    91
    Par défaut
    ça donne ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        ActiveSheet.PivotTables("TDC prio").ChangePivotCache ActiveWorkbook.PivotCaches _
            .Create(SourceType:=xlDatabase, SourceData:= _
            "C:\Users\Documents\2- Projets\PPA\[PPA SEM vierge v 1.92.xls]PPA SYNTHESES Priorités!R4C3:R19C10" _
            , VERSION:=xlPivotTableVersion10)
    que je transforme en ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
          Sheets("TDCPPA").PivotTables("TDC prio").ChangePivotCache ActiveWorkbook.PivotCaches _
            .Create(SourceType:=xlDatabase, SourceData:= _
            "PPA SYNTHESES Priorités!R4C3:R26C10")
    Mais j'ai aucune idée si ça marche sous 2003. J'ai un PC équipé en 2010 et pour avoir un PC équipé 2003 je galère. J'ai déjà utilisé le code que je présente au début de ce post mais dans le nom d'onglet il n'y avais pas d'espace. Et je sais qu'il marche sous 2003. C'est pour ça que j'aimerai adapté mon 1er code pour qu'il fonctionne avec des espace dans le nom de l'onglet.

  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
    Bonjour


    La gestion des TCD est différente entre 2003 et 2010.

    Donc difficile de tester si tu n'as que 2003.

    Je reviens à ma proposition initiale, la source peut-elle être déclarée en liste, auquel cas ce code devient inutile.
    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
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 273
    Points : 91
    Points
    91
    Par défaut
    Probablement, je ne suis pas très au fait de ce qu'on peut faire avec les listes. Je m'en suis pour ainsi dire jamais vraiment servi. Tu peux m'aiguillier vers un lien pour que je me renseigne concernant les listes avec les TDC? Merci

    J'ai essayé ça aussi mais sans succès:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Dim plage As Range
    Set plage = Sheets("PPA SYNTHESES Priorité").Range("C4:J15")
    Sheets("TDCPPA").PivotTables("TDC prio").SourceData = plage
    J'ai essayé l'enregistreur de macro sous 2003 ça donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _
            "'PPA SYNTHESES Priorités'!R4C3:R18C10"
    Mais ça ne fonctionne pas sous 2010

  8. #8
    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 la classeur doit être utilisé dans les 2 versions, il peut être nécessaire de tester la version de l'application en cours d'exécution pour avoir un code qui exécute une action dans un cas et une autre dans l'autre cas...
    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é...

  9. #9
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 273
    Points : 91
    Points
    91
    Par défaut
    Oui je n'y avais pas pensé. Tu proposais plus haut quelque chose avec les listes, je n'ai rien réussi à trouver sur ce sujet. Comment on alimente un TDC avec une liste? Aurais-tu un lien ou un site sur lequel je puisse me renseigner?

    Merci d'avance

  10. #10
    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

    Depuis 2007, les listes s’appellent tableaux (mauvaise traduction de table au sens base de données) et portent un nom, ce qui facilitent leur exploitation.

    Sur 2003, on voit peu la différence entre une plage et une liste mais on obtient la même élasticité, indispensable aux TCD notamment.

    Sur 2007 et + voir http://silkyroad.developpez.com/excel/tableau/ et http://www.excel-formations.fr/Trucs...Tableaux01.php

    Sur 2003 j'ai trouvé cela http://www.coursbardon-microsoftoffi.../listes-12.htm
    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é...

  11. #11
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 273
    Points : 91
    Points
    91
    Par défaut
    Si je comprends bien, on ce passe de TDC.

    Si c'est le cas, j'ai un problème car ma source change en nombre de ligne mais aussi en nombre de colonne. Et du coup si j'utilise des listes ça vas faire une vrais usine à gaz.

  12. #12
    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

    Non, tu ne comprends pas bien. Si tu relis mon poste #11 : "on obtient la même élasticité, indispensable aux TCD notamment".

    La liste (2003) ou le tableau (2007-2013) permet à Excel de connaître en permanence la surface des données en hauteur comme en largeur (sur 2003 pour la largeur, il faut, de mémoire, déplacer la limite bleur, je ne crois pas qu'il le fasse tout seul comme avec le tableau).

    A partir du moment où cette surface est automatiquement gérée, la source du TCD évolue en conséquence de façon transparente, sous réserve de créer le TCD après avoir mis sous forme de liste où d'en avoir redéfini la source s'il existait déjà.
    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é...

  13. #13
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 273
    Points : 91
    Points
    91
    Par défaut
    J'ai réussi à alimenter mon TDC avec une liste.

    Par contre ma liste ne se redimensionne pas toute seul lorsque que j'augmente le nombre de ligne

    Je sais pas si le fait que ma liste viennent d'un autre TDC pause un problème

  14. #14
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 273
    Points : 91
    Points
    91
    Par défaut
    J'utilise Excel 2010 l'onglet formule "définir un nom", "gestionnaire de noms"

  15. #15
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 273
    Points : 91
    Points
    91
    Par défaut
    J'ai trouvé ce que tu disais la définition d'un tableau. ça marche très bien pour une feuille normale.
    Par contre je n'y arrive pas sur un TDC.

    J'ai un TDC avec une colonne en plus qui ne lui appartient pas (colonne de calcule) mais je définie le tableau avec la colonne en plus. Mais je n'arrive pas a retrouver mon Tableau.

  16. #16
    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

    Si je comprends bien, depuis le début on parle d'une source de TCD combinant un TCD et des formules dans une colonne juxtaposée !

    Si oui, que d'échanges pour un problème mal défini au départ...

    Les listes et tableaux ne peuvent se superposer à un TCD... et d'autre part la source d'un TCD doit obéir à certaines règles...

    Il serait bien de reposer clairement ton cas...
    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é...

  17. #17
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 273
    Points : 91
    Points
    91
    Par défaut
    Oui ma source est un TDC c'est pour cela qu'a la base je voulais définir ma source en dure avec les cellules comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("TDCPPA").PivotTables("TDC prio").SourceData = "'PPA SYNTHESES Priorités'!R4C2:R29C10"
    Ce qui marche très bien si mon nom d'onglet ne comporte pas d'espace hors ici mon nom d'onglet contient des espaces d'où les '. Mais Les ' ne marche pas et je ne comprends pas pourquoi.

    Ma source est du style un TDC variant en nombre de ligne et colonne +une colonne à la fin où il y a un calcul d’éléments du TDC .

    Donc est -il possible avec mon code d'inclure des espaces dans les noms d'onglet? Sinon il faut que je trouve une autre méthode pour arriver à alimenter mon TDC.

  18. #18
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 273
    Points : 91
    Points
    91
    Par défaut
    J'ai essayé 3 codes:

    un que j'utilise déjà sans espace:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("TDCPPA").PivotTables("TDC prio").SourceData = "'PPA SYNTHESES Priorités'!R4C2:R29C10"
    Mais du coup ne fonctionne pas avec des espaces

    un avec enregistreur de macro sous 2010:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Sheets("TDCPPA").PivotTables("TDC prio").ChangePivotCache ActiveWorkbook.PivotCaches _
            .Create(SourceType:=xlDatabase, SourceData:= _
            "PPA SYNTHESES Priorités!R4C3:R26C10")
    Ne marche pas sous 2003

    un avec enregistreur sous 2003:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
       ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _
            "'PPA SYNTHESES Priorités'!R4C3:R18C10
    Ne marche pas sous 2010 et je ne peux pas choisir le TDC que j'actualise.

  19. #19
    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

    Reste la possibilité de définir ta source avec un nom associé à une formule nommée qui, elle, marche dans les 2 versions, du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =DECALER('PPA SYNTHESES Priorités'!$C$4;0;0;NBVAL('PPA SYNTHESES Priorités'!$C:$C)-1;5)
    à adapter si tu utilises la notation LC et en fonction de :
    • de la première colonne du TCD (dans tes exemples c'est tantôt C2, tantôt C3)
    • pour le NBVAL, de la colonne pleine pouvant servir de repère, de la présence du total général ou non dans le TCD, de ce qui se trouve au dessus du titre que tu situe en ligne 4
    • de la largeur en nombre de colonnes
    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é...

  20. #20
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 273
    Points : 91
    Points
    91
    Par défaut
    J'étais justement en train de réfléchir là dessus

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Names("TestTDCprio").RefersToR1C1 = "='PPA SYNTHESES Priorités'!R4C3:R29C10"

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/11/2009, 17h51
  2. Pbm source données dans sharepoint designer
    Par chiraz dans le forum SharePoint
    Réponses: 0
    Dernier message: 28/07/2009, 16h24
  3. Différence entre source donne utilisateur et systeme
    Par rec82 dans le forum Bases de données
    Réponses: 3
    Dernier message: 14/01/2009, 12h52
  4. Réponses: 0
    Dernier message: 06/05/2008, 10h44
  5. Utiliser DATAADAPTER créé via Sources Données dans fichier Module
    Par stephane77fr dans le forum Windows Forms
    Réponses: 2
    Dernier message: 17/08/2007, 15h22

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