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 :

créer un TCD qui s'actualise avec une macro


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2011
    Messages : 1
    Points : 2
    Points
    2
    Par défaut créer un TCD qui s'actualise avec une macro
    bonsoir je veux créer un TCD en excécutant une macro mais ca crée erreur...
    aider moi merci...

    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
    Sub TCD_vente()
    '
    ' TCD_vente Macro
    '
     
    '
        Range("A5:M199").Select
        Sheets.Add
        ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
            "BASE DE DONNEES!R5C1:R199C13", Version:=xlPivotTableVersion12). _
            CreatePivotTable TableDestination:="Feuil2!R3C1", TableName:= _
            "Tableau croisé dynamique4", DefaultVersion:=xlPivotTableVersion12
        Sheets("Feuil2").Select
        Cells(3, 1).Select
        With feuille2.PivotTables("Tableau croisé dynamique4")
            .InGridDropZones = True
            .RowAxisLayout xlTabularRow
        End With
        With feuille2.PivotTables("Tableau croisé dynamique4").PivotFields( _
            "articles")
            .Orientation = xlRowField
            .Position = 1
        End With
        feuille2.PivotTables("Tableau croisé dynamique4").AddDataField ActiveSheet. _
            PivotTables("Tableau croisé dynamique4").PivotFields("Qté vendue"), _
            "Somme de Qté vendue", xlSum
        feuille2.PivotTables("Tableau croisé dynamique4").AddDataField ActiveSheet. _
            PivotTables("Tableau croisé dynamique4").PivotFields("Prix de vente"), _
            "Somme de Prix de vente", xlSum
        feuille2.PivotTables("Tableau croisé dynamique4").AddDataField ActiveSheet. _
            PivotTables("Tableau croisé dynamique4").PivotFields("Montant"), _
            "Somme de Montant", xlSum
        Range("C4").Select
        With feuille2.PivotTables("Tableau croisé dynamique4").PivotFields( _
            "Somme de Prix de vente")
            .Orientation = xlRowField
            .Position = 2
        End With
        feuille2.PivotTables("Tableau croisé dynamique4").PivotSelect _
            "articles[All;Total]", xlDataAndLabel, True
        Range("A3").Select
        With feuille2.PivotTables("Tableau croisé dynamique4").PivotFields( _
            "date de vente")
            .Orientation = xlPageField
            .Position = 1
        End With
        With feuille2.PivotTables("Tableau croisé dynamique4").PivotFields( _
            "Type de  vente")
            .Orientation = xlPageField
            .Position = 1
        End With
        With feuille2.PivotTables("Tableau croisé dynamique4").PivotFields("EQUIPE")
            .Orientation = xlPageField
            .Position = 2
        End With
    End Sub
    coorigé svp ce quie ne va pas merci

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Points : 14 363
    Points
    14 363
    Par défaut
    Bonjour,

    Sur quelle ligne as-tu l'erreur ? si tu cliques sur "débogage", la ligne est surlignée en jaune. Et comme te l'as demandé kiki29, quel est le message d'erreur ?

    Et que représente "feuille2" une variable ou un codename ?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Février 2011
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 94
    Points : 158
    Points
    158
    Par défaut
    Bonjour
    Tu peux tester cela:

    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
     
    Sub TCD_vente()
    Application.ScreenUpdating = False
    On Error Resume Next
    Application.DisplayAlerts = False
    Sheets("TCD").Delete
    Application.DisplayAlerts = True
     
        ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:="BASE DE DONNEES!R5C1:R199C13"). _
            CreatePivotTable TableDestination:="", _
            TableName:="Tcd"
        ActiveSheet.Name = "TCD"
     
     
        With ActiveSheet.PivotTables("TCD")
            .InGridDropZones = True
            .RowAxisLayout xlTabularRow
        End With
        With ActiveSheet.PivotTables("Tcd").PivotFields( _
            "articles")
            .Orientation = xlRowField
            .Position = 1
        End With
        ActiveSheet.PivotTables("Tcd").AddDataField ActiveSheet. _
            PivotTables("Tcd").PivotFields("Qté vendue"), _
            "Somme de Qté vendue", xlSum
        ActiveSheet.PivotTables("Tcd").AddDataField ActiveSheet. _
            PivotTables("Tcd").PivotFields("Prix de vente"), _
            "Somme de Prix de vente", xlSum
        ActiveSheet.PivotTables("Tcd").AddDataField ActiveSheet. _
            PivotTables("Tcd").PivotFields("Montant"), _
            "Somme de Montant", xlSum
        Range("C4").Select
        With ActiveSheet.PivotTables("Tcd").PivotFields( _
            "Somme de Prix de vente")
            .Orientation = xlRowField
            .Position = 2
        End With
        ActiveSheet.PivotTables("Tcd").PivotSelect _
            "articles[All;Total]", xlDataAndLabel, True
        Range("A3").Select
        With ActiveSheet.PivotTables("Tcd").PivotFields( _
            "date de vente")
            .Orientation = xlPageField
            .Position = 1
        End With
        With ActiveSheet.PivotTables("Tcd").PivotFields( _
            "Type de  vente")
            .Orientation = xlPageField
            .Position = 1
        End With
        With ActiveSheet.PivotTables("Tcd").PivotFields("EQUIPE")
            .Orientation = xlPageField
            .Position = 2
        End With
    End Sub
    Je crois bien qu'elle pourrait etre simplifié!!

  4. #4
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Points : 14 363
    Points
    14 363
    Par défaut
    @ philo6 :

    La méthode "PivotCaches.Create" est disponible seulement depuis XL2007. Elle a remplacé "PivotCaches.Add". Comme c'est celle qu'emploie skophile, on peut supposer qu'il dispose de cette version (ou d''une version postérieure).

Discussions similaires

  1. créer dans excel un bouton avec une macro personnalisée
    Par deubelte dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/11/2008, 17h01
  2. Créer un service Web et communiquer avec une application lourde
    Par fabseven dans le forum Ruby on Rails
    Réponses: 5
    Dernier message: 10/03/2008, 21h22
  3. Réponses: 6
    Dernier message: 25/07/2007, 11h43
  4. Réponses: 3
    Dernier message: 17/11/2006, 15h35
  5. Créer un compte qui donne accès seulement à une imprimante
    Par bart64 dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 06/09/2006, 20h19

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