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 :

Modifer champ valeurs d'un Tableau croisé dynamique en VBA


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mars 2014
    Messages : 10
    Points : 8
    Points
    8
    Par défaut Modifer champ valeurs d'un Tableau croisé dynamique en VBA
    Bonjour à tous

    Je viens vers vous par rapport a un souci que je souhaiterais resoudre

    Mon pb : J'ai 1 TCD qui est en relation avec 1 tableau avec des en têtes mois
    Aujourd'hui il est de juin 2014 à Mai 2015
    Le mois prochain les en têtes seront de Juillet 2014 à Juin 2015

    Je souhaiterai crée en VBA , un code me permettant de modifier la valeurs des champs
    Je m'explique; l'objectif serait
    Que le champ valeurs 1 soit la valeur de cellule A1 de la feuille de base
    Que le champ valeurs 2 soit la valeur de celluleB1 de la feuille de base
    ......

    Aurriez vous une idée sur la procédure?

    Merci

    Bibbip35
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    Bonjour,

    Je n'ai pas compris si le nombre de lignes de la base était variable. La macro qui suit suppose que ce nombre est fixe. Dans le cas contraire, dis-le.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim PT1 As PivotTable
    Set PT1 = Sheets("TCD").PivotTables("Tableau croisé dynamique1")
    With PT1
        .PivotCache.Refresh
        .AddDataField PT1.PivotFields(Format([Base!P1], "mmm-yy")), "Somme de " & Format([Base!P1], "mmm-yy"), xlSum
    End With

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2014
    Messages : 25
    Points : 29
    Points
    29
    Par défaut
    Salut bibbip,

    Si j'ai bien compris (et c'est rarement le cas ).

    Si tu veux rajouter la ligne Juin-2015 le code devrait ressembler à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Worksheets("TCD").PivotTables("Tableau croisé dynamique1").AddDataField Worksheets("TCD"). _
            PivotTables("Tableau croisé dynamique1").PivotFields("juin-15"), _
            "Somme de juin-15", xlSum
    Par contre cela ne marchera que dans certains cas qui dépendent de la façon dont ton tableau source source est mis à jour. Il se peut que la source de données utilisées pour le TCD change.
    Dans ton exemple, si tu supprimes la colonne E (le moi que tu ne veux plus) la source du TCD passe de A112 à A1:O12 auquel cas la ligne de code que j'ai donné ne suffira pas.

    Si la mise à jour de ton tableau source entraine ce problème tu dois changer la source de données avant d'utiliser la ligne de code du début :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("TCD").PivotTables("Tableau croisé dynamique1").SourceData = "Base!L1C1:L12C16"
    Il faudra bien sur personnaliser la ligne, j'imagine que tu n'as pas toujours 12 lignes.


    EDIT : je me suis fait devancer

  4. #4
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 492
    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 492
    Points : 16 400
    Points
    16 400
    Par défaut
    Bonjour

    Tu as déjà posé la question sur un autre forum et nous t'avons répondu : si tu modifies les titres des colonnes cela a un impact direct sur le TCD, que la modification soit faite manuellement ou en VBA.

    Nous t'avons invité à nous préciser pour quoi tu ne veux pas revoir ta source mal adaptée à l'exploitation par TCD mais tu ne nous as pas répondu...

Discussions similaires

  1. Réponses: 16
    Dernier message: 21/02/2017, 20h48
  2. Réponses: 3
    Dernier message: 19/03/2014, 09h19
  3. Remplacer valeur dans un tableau croisé dynamique
    Par caro93150 dans le forum Excel
    Réponses: 16
    Dernier message: 04/07/2008, 09h13
  4. Réponses: 1
    Dernier message: 21/01/2008, 18h04
  5. Réponses: 4
    Dernier message: 27/11/2006, 23h20

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