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 :

Problèmes pour créer un TCD via VBA [XL-2007]


Sujet :

Macros et VBA Excel

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    logisticien
    Inscrit en
    Août 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : logisticien

    Informations forums :
    Inscription : Août 2014
    Messages : 28
    Par défaut Problèmes pour créer un TCD via VBA
    Bonjour,

    Je débute avec VBA et je souhaite créer un TCD (Excel 2007) dont la plage source a un nombre de lignes variable.
    Je voudrais placer mon TCD dans une feuille nommée TCD (peu importe son nom mais je ne veux pas du nom par défaut). Le problème c’est qu’avec la macro enregistrée une nouvelle feuille s’ouvre à chaque fois or j’ai besoin d’avoir mon TCD et d’utiliser différents filtres afin renseigner un autre tableau avec les résultats obtenus.
    J’ai donc enregistré une macro pour m’inspirer du code. En fait, j’ai juste substitué les adresses des tables source et de destination mais cela ne fonctionne pas (la naïveté du débutant me direz vous ?). Aucune de mes tentatives, pas plus que les solutions trouvées sur différents forums (dont Developpez.net) ne fonctionne. Je ne comprends pas où sont les problèmes.
    Je précise qu’à chaque fois qu’une feuille est mentionnée dans le code je me suis assuré qu’elle existe bien et qu’il n’y a pas d’erreur de saisie dans les noms.

    J’ai réduit le code au minimum pour créer le TCD et à chaque exemple ci-dessous (c'est-à-dire que c’est tout ce qu’il y a entre Sub Code() et End sub) j’ai placé le curseur dans le tableau de la feuille « Données » et j’ai obtenu le message d’erreur reporté en caractère gras.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim NbLigne As Long, NbColonne As Long, i As Long, j As Long
    NbLigne = Range("A" & Rows.Count).End(xlUp).Row
    NbColonne = Cells(1, Cells.Columns.Count).End(xlToLeft).Column
    i = NbLigne
    j = NbColonne
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
            "Données!L& i & C & j:L1C1", Version:=xlPivotTableVersion12).CreatePivotTable _
            TableDestination:="TCD!L3C1", TableName:="Tableau croisé dynamique1", _
            DefaultVersion:=xlPivotTableVersion12
    Erreur d’exécution 5, argument où appel de procédure incorrect et quand je remplace L par R j’ai le message : Erreur d’exécution 1004, Référence non valide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
           "Données!L1C1:L89C20", Version:=xlPivotTableVersion12).CreatePivotTable _
            TableDestination:="TCD!L3C1", TableName:="Tableau croisé dynamique1", _
            DefaultVersion:=xlPivotTableVersion12
    Erreur d’exécution 5, argument où appel de procédure incorrect (ici la plage est figée mais c’était pour voir si le problème venait du changement de l’exemple précédent)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ThisWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
        [Données!A1].CurrentRegion.Address(, , xlR1C1, True)).CreatePivotTable _
        TableDestination:="Feuil3!R3C1", _
        TableName:="Mon TCD"
    Erreur d’exécution 5, argument où appel de procédure incorrect

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
            ThisWorkbook.Worksheets("Données").UsedRange, _
            Version:=xlPivotTableVersion12).CreatePivotTable _
            TableDestination:="TCD!L3C1", TableName:="Tableau croisé dynamique1", _
            DefaultVersion:=xlPivotTableVersion12
    Erreur d’exécution 9, l’indice n’appartient pas à la sélection

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
            ThisWorkbook.Worksheets("Données").Range("A1").CurrentRegion, _
            Version:=xlPivotTableVersion12).CreatePivotTable _
            TableDestination:="TCD!L3C1", TableName:="Tableau croisé dynamique1", _
            DefaultVersion:=xlPivotTableVersion12
    Erreur d’exécution 9, l’indice n’appartient pas à la sélection

    Par ailleurs, je ne sais pas la différence entre « PivotCaches.Create » et « PivotCaches.Add ».

    Ensuite, je souhaite simplement filtrer comme ceci :
    Etiquette de colonne : Moiséchéance
    Etiquette de ligne : Secteur
    Valeur : Valeurcouverte, Somme de

    puis,
    Etiquette de ligne : Secteur
    Valeur : Codecontrat, Nombre de

    Malgré des heures de recherche dans les forums et les tutoriels je n'ai pas trouvé de solution. La plupart des cas identiques que j’ai rencontré n’ont soit pas eu de solution soit celles proposées n’ont pas fonctionné pour moi (par exemple le changement de langue avec R à la place du L pour les lignes).

    Bref, pétrin appel au secours !
    Je remercie d’avance celles et/où ceux qui voudront bien me proposer une solutions.

    Cordialement
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] erreur 1004 pour la création d'un tcd via vba
    Par lps02 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/10/2012, 20h23
  2. VBA pour créer un TCD sur powerpivot
    Par jpclabaux dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/09/2012, 16h17
  3. Problème pour créer la relation
    Par LeNeutrino dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/02/2006, 13h24
  4. [XML word] problème pour créer des puces
    Par ratapapa dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 21/07/2005, 13h52
  5. Doc pour créer requetes SQL via ODBC sous EXCEL
    Par satanas dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 25/01/2005, 08h33

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