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 :

Probleme de creation d'une Pivot table (TCD)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 29
    Par défaut Probleme de creation d'une Pivot table (TCD)
    Bonjour a tous

    Je me prend la tete depuis 2 jours a creer une TCD a partir de données d'une feuille Excel en VBA mais je n y arrive pas!!!
    Voila mon code:
    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
     
    Sub TCD()
    Sheets("Sheet2").Activate
    Dim pivot As String
    Dim counter As Double
    counter = Cells(2, 1).End(xlDown).Row
     pivot = "Sheet2!R1C1:R" & counter & "C2"
    'avec counter=nombre de lignes
     
    'création du tableau croisé dynamique
        ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:=pivot). _
        CreatePivotTable TableDestination:=range("AA2"), TableName:="ALtis"
        ActiveSheet.Name = "Pivot toutAlti"
        ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
        ActiveSheet.Cells(3, 1).Select
        ActiveSheet.PivotTables("Altis").SmallGrid = False
        With ActiveSheet.PivotTables("Altis").PivotFields("Nom")
            .Orientation = xlRowField
            .Position = 1
        End With
        With ActiveSheet.PivotTables("Altis").PivotFields("Encours")
            .Orientation = xlDataField
            .Position = 1
        End With
     
     
    End Sub
    Ca bloque au niveau de ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:=pivot). _
    Ca me fair erreur 1004. Je ne comprends pas pourquoi???

    Quelqu'un peut m'aider svp

    Merci d'avance

  2. #2
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Salut,

    ta syntaxe est incorrecte.
    SourceData:=pivot


    voici un exemple qui fonctionne.
    Il prend toutes les données de la feuille External comme source. (11 colonnes)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
            "External!R1C1:R" & xlrow & "C11").CreatePivotTable TableDestination:="", TableName:= _
            "Pivot_Press"

  3. #3
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 29
    Par défaut
    Merci Godzestla pour ta reponse mais ca ne marche tjs pas...
    Maintenant, j'ai une erreur 424 (Object required) avec le code que tu m'as donnée...
    Ce que je veux faire est le suivant:
    J'ai des données sur une feuille Excel (Sheet2),18 colonnes et le nombre de ligne varie d'une requête a l'autre ( je récupère mes données selon des critères d'une base de donnée Access via SQL en VBA Excel).
    Il ya trop de doublons, de triplons et même plus dans mes données, donc je veux récupérer une seule fois les données de la première colonne...
    J'ai essayé de faire des boucles, des Vlookup mais ca prend du temps car le nombre de ligne est important, c'est pour cela que je veux faire une pivot table en VBA, je récupère le bon nombre de champs, rapidement et j'ai pas a rafraichir les données manuellement a chaque requête ( nouvelles données).
    Si tu peux m'aider ca serait trop cool

    Merci

  4. #4
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Salut sissi00000,

    j'ai très peu de temps mais montre moi ta procédure ou fonction ou je vais peut-être pouvoir voir quelquechose.

    Merci de dire également ou se trouvent tes données de base pour le pivot.

    en fait mon code vient de :

    1) enregistremenrt macro
    2) Générer la pivot à la main
    3) Stop macro
    4) Adapte le range pour données variable.

    C'est tout.

    Tu peux essayer. C'est étonnant.

  5. #5
    Membre averti
    Inscrit en
    Mai 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 29
    Par défaut
    en fait , j'ai essayé plein de bout de code que j'ai trouve sur internet mais ca marche pas, parexemple celui la :
    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
     
     
    Sub MakeTable()
    'Dim Pt As PivotTable
    'Dim strField As String
    '
    '    'Pass heading to a String variable
    '    strField = Selection.Cells(2, 1).Text
    '
    '    'Name the list range
    '    range(Selection, Selection.End(xlDown)).Name = "Items"
    '
    '    'Create the Pivot Table based off our named list range.
    '    'TableDestination:="" will force it onto a new sheet
    '    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, _
    '        SourceData:="Sheet2!R1C1:R" & xlrow & "C11").CreatePivotTable TableDestination:="", _
    '            TableName:="ItemList"
    '
    '    'Set a Pivot Table variable to our new Pivot Table
    '    Set Pt = ActiveSheet.PivotTables("ItemList")
    '
    '    'Place the Pivot Table to Start from A3 on the new sheet
    '    ActiveSheet.PivotTableWizard TableDestination:=Cells(3, 25)
    '
    '    'Move the list heading to the Row Field
    '    Pt.AddFields RowFields:=strField
    '    'Move the list heading to the Data Field
    '    Pt.PivotFields(strField).Orientation = xlDataField
    'End Sub
    il bloque aussi a la creation de la table.
    mes données pour la pivot table se trouve dans une feuille sous forme de 18 colonnes et un nombre de ligne non defini...
    Normalement j'ai pas besoin de creer le pivot table a la main , non???

  6. #6
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Ca peut pas marcher comme cela. Il y a plein de fautes (XLrow n'existe pas dans ton code).

    Je me repete, please car pas le temps, donne moi ton code LISIBLE (donc pas avec des ' devant chaque ligne, et dis moi précisément comment je repère la source de données, en code SVP, du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Sheet2!R1C1:R500C11") ou si le range est dans une variable ou une sélection montre moi ou.
    Faut prendre ton temps pour expliquer en détails si tu veux une réponse qui marche.

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

Discussions similaires

  1. Probleme de creation d'une table apres creation de la bdd
    Par adissa357 dans le forum Développement Web avec .NET
    Réponses: 0
    Dernier message: 02/10/2013, 01h33
  2. Probleme de creation d'une BDD avec SQL server 2005 et vista
    Par necer_cheniki dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 22/06/2008, 10h15
  3. Changer les données d'une pivot table en VBA avec SQL
    Par Reskibil dans le forum Général VBA
    Réponses: 0
    Dernier message: 03/04/2008, 17h47
  4. [SQL] Probleme de requete sur une même table
    Par LP-mpascolo dans le forum Langage SQL
    Réponses: 3
    Dernier message: 30/01/2008, 14h02
  5. probleme de creation d'une BD
    Par impsaid dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 29/01/2008, 19h20

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