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


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
    Tout juste diplômé Master 2 Miage (SI / Aide à la prise de décision)
    Inscrit en
    Avril 2011
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Tout juste diplômé Master 2 Miage (SI / Aide à la prise de décision)

    Informations forums :
    Inscription : Avril 2011
    Messages : 137
    Par défaut TCD en vba
    Bonjour,

    Je suis en train d'implémenter une macro qui ouvre des fichiers selon un ID entré par l'utilisateur, et qui génère un fichier selon différents critères.
    Dans la création du fichier, je dois créer un TCD dans un onglet, prenant en paramètre des données d'un autre onglet.

    Le TCD se crée bien lorsque je traite qu'un seul fichier.
    Mais dans un cas, je fais une boucle car plusieurs fichiers sont à traiter.
    Dans ce cas, dès le premier fichier traité, message d'erreur :
    "Erreur d'exécution '5' : Argument ou appel de procédure incorrect".
    Blocage dès le début : " ActiveWorkbook.PivotCaches.Add"

    Et quand je débugge la macro étape par étape, il bloque un peu plus loin dans le "Selection.Group", le groupement par date.

    Voici le 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
                ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
            "Donnees_synthese!R10C1:R35C9").CreatePivotTable TableDestination:= _
            "[" & Nomfic & "]Synthèse!R1C1", TableName _
            :="Tableau croisé dynamique2", DefaultVersion:=xlPivotTableVersion10
     
        With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Date")
            .Orientation = xlRowField
            .Position = 1
        End With
        With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Type")
            .Orientation = xlColumnField
            .Position = 1
        End With
        With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Devise")
            .Orientation = xlRowField
            .Position = 2
        End With
        Range("A2").Select
        Selection.Group Start:=True, End:=True, Periods:=Array(False, False, False, _
            False, True, False, True)
        ActiveSheet.PivotTables("Tableau croisé dynamique2").AddDataField ActiveSheet. _
            PivotTables("Tableau croisé dynamique2").PivotFields("Reste dû"), _
            "Somme de Reste dû", xlSum
    Est-ce possible que le code s'exécute trop vite dans une boucle ?

  2. #2
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Tu donnes un nom explicite au TCD, du coup, quand tu essaies d'en faire un deuxième, ce n'est pas possible, car il ne peut pas y avoir deux TCD avec le même nom.

  3. #3
    Membre Expert
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Par défaut
    Bonjour,
    il faudrait incrementer le nom de la table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    n = ActiveWorkbook.PivotCaches.Count + 1
    .... TableName:="Tableau croisé dynamique" & cstr(n) ....
    par exemple

Discussions similaires

  1. 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
  2. E-XP : création TCD via VBA.
    Par gillou13 dans le forum Excel
    Réponses: 1
    Dernier message: 27/02/2009, 20h42
  3. Mise à jour de la source d'un TCD via VBA
    Par alex830001 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 22/01/2009, 10h41
  4. TCD sous VBA
    Par davyvba dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/06/2008, 16h38
  5. Changer le format d'un champ d'un TCD en vba
    Par patate5555 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/07/2007, 06h49

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