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 :

Panique avec les Tableaux dynamiques


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 147
    Par défaut Panique avec les Tableaux dynamiques
    Bonjour à tous et merci de vos réponses d'avance.

    J'ai récupérer un code de ma "patronne" qui l'avais fait à la barbare. J'ai couper le sub en fonction, mais arrivé à la création de tableaux dynamique j'avoue que je peine un peu. Je vous donne le code dites moi si vous voyez quelque chose de pas bon :

    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
    Function_echantillon()
    Sheets("XPART").Select
    Range("A1").Select
    Range(Selection, Selection.End(xlDown)).select
    Range(Selection, Selection.End(xlToRight)).select
    Application.CutCopyMode = False ' Me demandez pas pourquoi y'a cette ligne je comprend pas, dites moi si elle est utile ou pas
    ActiveWorkbook.Names.Add Name :="DonnéesSourcesTCD2", RefersTo:=Selection  ' Enregistre dans une plage de cellule les informations qui seront utilisées dans le Tableau dynamique
     
    Sheets("TCD").Select
    Range("E1"). Select
     
    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
    "DonnéesSourceTCD2").CreatePivotTable TableDestination:= _
    "TCD!R3C5", TableName:="TCDnbpieces", _
    DefaultVersion:=xlPivotTableVersion10
     
    ActiveSheet.PivotTables("TCDnbpieces").AddFields RowFields:= _
    "Echantillon", PageFields:=Array("Groupe","BM","Equipe")
     
    With ActiveSheet.PivotTables("TCDnbpieces").PivotFields("piece"
    .Orientation = xlDataField
    .Caption = "Nombre de pieces"
    .Funtion = xlCount
    End With
     
    ActiveSheet.PivotTables("TCDnbpieces").PivotFields("Groupe"). _
    CurrentPage = Groupe  ' A cette ligne, j'ai une erreur '1004' Impossible de definir la propriété _Default de la classe PivotItem.
     
    ActiveSheet.PivotTables("TCDnbpieces").PivotFields("BM"). _
    CurrentPage = BM
    Alors, avant je n'avais pas d'erreur, je ne comprend pas, pouvez-vous m'expliquer pourquoi y'a cette erreur ?

    Merci d'avance, aidez-moi s'il vous plait

  2. #2
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    Citation Envoyé par Swiper
    Application.CutCopyMode = False ' Me demandez pas pourquoi y'a cette ligne je comprend pas, dites moi si elle est utile ou pas
    Inutile. En Excel, quand tu fais un Copy (Ctrl-C); la cellule est encadrée avec des pointillés. CutCopyMode=False désactive cette sélection et inhibe le Paste (Ctrl-V).

    Citation Envoyé par Swiper
    CurrentPage = Groupe ' A cette ligne, j'ai une erreur '1004' Impossible de definir la propriété _Default de la classe PivotItem.
    C'est quoi "Groupe" ?

    Christophe

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 147
    Par défaut
    "Groupe" c'est une variable incrementé par un userform type numérique. C'est un critère pour le filtrage dans le tableau justement. Il y a aussi "BM" à la fin qui est une variable semblable.

  4. #4
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 147
    Par défaut
    Je fais mon méaculpa, désolé, désolé c'est des bêtises de Gros nUub en dev...

    J'executais ma fonction seule, et comme les variable GROUPE et BM étaient attribué au début du programme, bah.. elles étaient pas là ^^, d'où l'erreur...

    Merci comme même de l'aide fournie.

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    D'abord une question : Ta base de données est-elle homogène ? Pas de ligne ou de colonne entièrement vide ?
    A+

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 147
    Par défaut
    En fait pas entièrement...
    Y'a une erreur dans à peu près le même code que j'arrive pas à résoudre. Voici l'erreur : Impossible de lire la propriété PivotFields de la classe PivotTable.

    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
    Function_echantillon_moyenne()
     
    Groupe = 803
    BM = 1
     
    Sheets("TCD").Select
    Range("H1").Select
     
    ActiveWorkbook.Worksheets("TCD").PivotTables("TCDnbpieces").PivotCache. _
    CreatePivotTable TableDestination:="TCD!R3C8", TableName:= _
    "TCDmoyenne1", DefaultVersion:=xlPivotTableVersion10
     
    ActiveSheet.PivotTables("TCDmoyenne1").AddFields RowFields:= _
    "Echantillon", PageFields:=Array("Groupe","BM","Equipe")
     
    With ActiveSheet.PivotTables("TCDmoyenne1").PivotFields("Longueur pincement droit")  ' L'erreur se situe ici
    .Orientation = xlDataField
    .Caption = "Moyenne de longueur pincement droit"
    .Funtion = xlAverage
    End With
     
    ActiveWorkbook.ShowPivotTableFieldList = False
    ActiveSheet.PivotTables("TCDmoyenne1").PivotFields("Groupe"). _
    CurrentPage = Groupe  
     
    ActiveSheet.PivotTables("TCDmoyenne1").PivotFields("BM"). _
    CurrentPage = BM
    Range("I11").select
    Alors je sais que c'est la création du CTD qui change alors ca peut venir de là, mais je ne comprend pas trop le pourquoi du comment. Sinon est-ce que si je reproduis le code d'en haut mais avec les variables adaptées cela marcherais ?

Discussions similaires

  1. [Langage] Probleme avec les tableaux dynamiques
    Par wawa84 dans le forum Langage
    Réponses: 7
    Dernier message: 19/11/2008, 17h18
  2. [Débutant] Problèmes avec les tableaux.
    Par Lwq dans le forum C++
    Réponses: 6
    Dernier message: 01/11/2005, 12h54
  3. [vb excel]Aide avec les tableaux
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/09/2005, 12h07
  4. Article sur les tableaux dynamiques
    Par Eric Sigoillot dans le forum Langage
    Réponses: 2
    Dernier message: 16/04/2004, 22h00

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