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 :

TCD : consolidation d'une seule feuille


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2009
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 50
    Points : 36
    Points
    36
    Par défaut TCD : consolidation d'une seule feuille
    Bonjour,

    Je souhaite créer un TCD par une macro en consolidant les données provenant d'une seule feuille, ce qui est assez bizarre je l'avoue. Je suis obligé de procéder comme cela car plusieurs colonnes ont le même intitulé, et je veux les réunir (voir l'image ici, on prend les données à partir de B3).
    Je suis passé par l'enregistreur de macro, qui m'a donné le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlConsolidation, SourceData:=Array("'Feuille d''heure (27)'!R3C2:R28C67"), Version:=xlPivotTableVersion10).CreatePivotTable TableDestination:="'[Feuilled''heuresAlexandre2009-2010.xls]Stat_semaine'!R57C1", TableName:="Tableau croisé dynamique1", DefaultVersion:=xlPivotTableVersion10
        ActiveSheet.PivotTables("Tableau croisé dynamique1").DataPivotField.PivotItems("Nombre de Valeur").Position = 1
        With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Colonne")
            .Orientation = xlRowField
            .Position = 2
        End With
        With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Ligne")
            .Orientation = xlColumnField
            .Position = 1
        End With
    J'ai voulu l'adapter de façon à supprimer puis recréer le TCD à partir des données d'une autre feuille, après appui sur un bouton (voir l'image ici, le tcd est déjà créé) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Dim database As Object
        Dim tcd As String
        Dim semaine As String
        Dim bdd As String
     
        tcd = ActiveSheet.Name
     
        'ActiveSheet.PivotTables("TCD_semaine").PivotSelect "", xlDataAndLabel, True
        'Selection.Clear
     
        semaine = Cells(1, 2).Value
        Sheets(semaine).Select
        Set database = Range(Cells(3, 2).End(xlDown), Cells(3, 2).End(xlToRight))
     
        bdd = "'" & semaine & "'!R3C2:R" & (database.Rows.Count + 2) & "C" & (database.Columns.Count + 1)
     
        Sheets(tcd).Select
    ' voila ce que je souhaite remplacer : SourceData:="'Feuille d''heure (27)'!R3C2:R45C67"
        ActiveWorkbook.PivotCaches.Create(SourceType:=xlConsolidation, SourceData:=Array(database), Version:=xlPivotTableVersion10).CreatePivotTable TableDestination:=ActiveSheet.Cells(57, 1), TableName:="TCD_semaine", DefaultVersion:=xlPivotTableVersion10
     
        With ActiveSheet.PivotTables("TCD_semaine").PivotFields("Colonne")
            .Orientation = xlRowField
            .Position = 2
        End With
     
        With ActiveSheet.PivotTables("TCD_semaine").PivotFields("Ligne")
            .Orientation = xlColumnField
            .Position = 1
        End With
     
        With ActiveSheet.PivotTables("TCD_semaine").PivotFields("Nombre de Valeur")
            .Caption = "Somme de Valeur"
            .Function = xlSum
        End With
    Seulement ça ne marche pas, j'ai éssayé en changeant database par bdd, en supprimant "Array("... mais rien à faire, ça bloque sur la ligne de création du TCD...

    Une idée ?

    Merci d'avance !!

  2. #2
    Nouveau membre du Club
    Inscrit en
    Juin 2009
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 50
    Points : 36
    Points
    36
    Par défaut
    Bon, il semblerait que le problème dépasse largement mes compétences : voici le message d'erreur que j'ai :
    Suivi parfois d'un plantage d'Excel.

    Après quelques recherches sur internet, il apparait que je ne comprend pas du tout quel est le problème et surtout comment le résoudre...

    Quelqu'un saurait-il m'aider ? I'm lost...

Discussions similaires

  1. [XL-2007] changer les filtres d'une TCD pour une seule feuille excel
    Par yeahna dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/02/2012, 14h30
  2. Sauvegarder qu'une seul feuille d'un classeur
    Par Didpa dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/08/2006, 07h53
  3. Imprimer une page web sur une seule feuille ?
    Par guidav dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 21/04/2006, 11h26
  4. [VBA-E] calculs automatique sur une seule feuille
    Par repié dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/03/2006, 11h53
  5. Excel : consolidation de données sur une seule feuille
    Par aquamusic dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/01/2006, 18h32

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