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 en vba fonction de données [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 57
    Par défaut tcd en vba fonction de données
    Bonjour,
    un petit probleme, de creation de TCD en VBA.
    lorsque je construis mon tableau croisé dynamique en VBA
    ma premiere ligne de données se mets en fonction nombre au lieu de somme

    je me suis aidé des exemples sur le site et
    quand j'essaye la commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    activesheet.PivotTables("TCDAnalyse").PivotFields("Potentiel").Function = xlSum
    j'ai un message d'erreur
    Impossible de definir la proprieté function de la classe Pivotfield

    si quelqu'un peut m'aider
    merci d'avance

  2. #2
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Salut,
    Sauf erreur de ma part, le nom du champ est le nom "strict"
    Exemple, tu dis qu'il est en Count, je pense donc qu'il faut écrire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.PivotTables("TCDAnalyse").PivotFields("Count of Potentiel").Function = xlSum
    Comme on n'a pas le reste du code, difficile d'être certain mais teste ça, ensuite on peut voir comment contourner (normalement en renomant le champ d'une manière générique)

    A+

  3. #3
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 57
    Par défaut fonctionne pas
    bonjour,
    merci pour la réponse, mais cela ne fonctionne pas

    voila le code
    ce n'est pas le programme final, je cherche a tester la macro récuperer sur le web avant de l'adapter a mon prog

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    Sub TableauCroiséDynamique()
     
    Dim CacheTCD As PivotCache
    Dim TCD As PivotTable
    Dim feuille As Worksheet
    On Error Resume Next
    Sheets("Mandats").DrawingObjects("TextBoxWait").Visible = True
    On Error GoTo 0
    Application.ScreenUpdating = False
     
     
    'supprimer la feuille analyse si elle existe déjà
    On Error Resume Next
    Application.DisplayAlerts = False
    Sheets("Analyse").Delete
    On Error GoTo 0
     
    'Creer un tableau croisé dynamique
    Set CacheTCD = ActiveWorkbook.PivotCaches.Add( _
    SourceType:=xlDatabase, _
    SourceData:=Sheets("Graph").Range("B1:E2"))
     
     
    'ajout de la feuille Analyse
    Worksheets.Add
    ActiveSheet.Name = "Analyse"
     
    'Creer un TCD à partir du cash
    For Each feuille In Worksheets
    If feuille.Name = "Analyse" Then
    feuille.Activate
     
    Set TCD = CacheTCD.CreatePivotTable( _
    tabledestination:=Sheets("Analyse").Range("A1"), _
    tablename:="TCDAnalyse")
    End If
    Next feuille
     
     
     
    With TCD
    'Ajout des champs
    .PivotFields("Potentiel").Orientation = xlDataField
     
    .PivotFields("ca 2008").Orientation = xlDataField
     
    .PivotFields("ca 2009 ").Orientation = xlDataField
     
    .PivotFields("budget 2010").Orientation = xlDataField
     
    End With
     
    Application.ScreenUpdating = True
     
     
    Sheets("Analyse").PivotTables("TCDAnalyse").PivotFields("count of Potentiel").Function = xlSum
     
    End Sub
    sinon une autre question, comment etre sur qu'a la creation il prendra la fonction somme.

    merci d'avance pour vos reponses

  4. #4
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Re,
    Avant toute chose, peux tu délimiter le code dans ton post, pur ça, sélectionne le texte correspondant et click sur l'icone #
    C'est plus facile à lire.

    Ensuite j'ai testé et j'avais raison, reste à asvoir comment il te crée ton champ, normalement, par défaut c'est en somme.

    Tu connaitras facilement le 'nom' du champ si tu fait un click droit, moi c'est en anglais à cause de la version mais j'imagine que tu es en version Fr.

    A+

  5. #5
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 57
    Par défaut ok
    bonjour,

    merci beaucoup pour la reponse

    ça fonctionne

    version française bien sur
    il fallait mettre ("Nombre de potentiel")

    merci a+

  6. #6
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Re,
    Désolé, j'oublie toujours ce détail de langue, entre temps j'ai pensé à autre chose, essaie ceci:

    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
    ...
     
    With TCD.PivotFields("Potentiel")
        .Orientation = xlDataField
        .Function = xlSum
    End With
     
    With TCD.PivotFields("ca 2008")
        .Orientation = xlDataField
        .Function = xlSum
    End With
     
    With TCD.PivotFields("ca 2009 ")
        .Orientation = xlDataField
        .Function = xlSum
    End With
     
    With TCD.PivotFields("budget 2010")
        .Orientation = xlDataField
        .Function = xlSum
    End With
     
    Application.ScreenUpdating = True
     
    End Sub
    A+

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/07/2015, 18h43
  2. [AC-2003] Changer la plage de données d'un TCD en VBA
    Par Deustalos dans le forum VBA Access
    Réponses: 2
    Dernier message: 04/02/2010, 17h43
  3. ajouter et supprimer des données dans un tcd avec vba
    Par pscoool dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 09/12/2009, 18h14
  4. [VBA] fonction qui donne la valeur présente dans une table
    Par zanou666 dans le forum VBA Access
    Réponses: 7
    Dernier message: 25/09/2007, 17h33
  5. Réponses: 21
    Dernier message: 21/04/2007, 08h00

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