Graphe croisé dynamique par macro

massimo888 Messages postés 209 Statut Membre -  
massimo888 Messages postés 209 Statut Membre -
Bonjour tout le monde,

J'aimerais savoir si il y a une macro pour générer un graphe croisé dynamique à partir d'un tableau croisé dynamique déjà existant ?

Merci!!

2 réponses

  1. benol3 Messages postés 718 Statut Membre 87
     
    Salut,

    Utilise l'enregistreur de macro, tu auras un modèle de ce que tu souhaites faire
    0
    1. massimo888 Messages postés 209 Statut Membre
       
      Salut,
      merci pour ta réponse
      Je l'ai déjà fais mais la macro fais fais des bugs ça ne marche pas du tout!!
      0
    2. benol3 Messages postés 718 Statut Membre 87
       
      Montre nous ton fichier via cjoint.com
      0
    3. massimo888 Messages postés 209 Statut Membre
       
      http://cjoint.com/14ju/DGqpLlhSy2h.htm

      Voila et merci.
      0
    4. benol3 Messages postés 718 Statut Membre 87
       
      Que veux tu réprésenter graphiquement ?
      0
    5. massimo888 Messages postés 209 Statut Membre
       
      Je veux reproduire le même graphique que quand je le génère manuellement!! cad qu'ils mettent dans le graphe toute les colonnes et que je ferais le choix des axes moi même!!

      Merci
      0
  2. benol3 Messages postés 718 Statut Membre 87
     
    Re,

    Utilises ce code :

    ActiveSheet.PivotTableWizard _
    SourceType:=xlDatabase, _
    SourceData:="CS!R3C1:R5C10", _
    TableDestination:=Range("A12"), _
    TableName:="TCD1"


    Ou
    SourceData sont tes données (R1C1 =1ère ligne 1ère colonne ="A1") R3C1:R5C10=>"A3:E10"
    TableDestination est la celulle où va être créé le tableau croisé dynamique
    TableName est le nom du tableau qui va être créé

    Ps : Si tu veux reproduire plusieurs tableaux avec ce code, Veille bien à ce que la celulle de destination ne soit pas déjà occupée et que le nom du nouveau tableau croisé dynamique ne soit pas déjà attribué.

    Pour ajouter des champs, utilise ces instructions :

    With ActiveSheet.PivotTables("TCD1").PivotFields("Barbu") 'Met barbu en ligne
            .Orientation = xlRowField
            .Position = 1
        End With
    With ActiveSheet.PivotTables("TCD1").PivotFields("Colonne1") 'Met colonne1 en colonne
            .Orientation = xlColumnField
            .Position = 1
        End With
    
    ActiveSheet.PivotTables("TCD1").AddDataField ActiveSheet.PivotTables("TCD1" _
            ).PivotFields("Barbu"), "Nombre de Barbu", xlCount 'Met Barbu en valeurs
    
    0
    1. massimo888 Messages postés 209 Statut Membre
       
      Merci pour le code mais ça marche pas, en débogage j'ai le même message d'erreur que celui que j'ai avec l'enregistreur!!
      0