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 :

Tableau CD vba


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 16
    Par défaut Tableau CD vba
    Bonjour tout le monde !

    Pour l'automatisation de la création de 4 TCD, je suis parvenu à écrire ce code qui ne marche pas bien sur et que VBA me sorte l'erreur "RunTime ERROR 5, invalid procedure call or argument" quand je l'execute ! J'ai loupé certainement un truc (ou des trucs) mais je ss pas en mesure de les détecter.

    Le code ce-dessous effectuera le suivant : il va parcourir 4 feuilles excel, selectionne un champs, puis crée le tableau croisé dynamique correspondants dans une nouvelle autre feuille, c'est tout !

    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    Sub Pivot_Tables_Maker()
     
    'Crée les quatres pivot tables WIP TAJ
    'Crée les quatres pivot tables WIP DLO
    'Crée les quatres pivot tables CA TAJ
    'Crée les quatres pivot tables CA DLO
     
    Dim ws As Worksheet
    Dim i As Integer
    Dim j As Integer
     
    i = 1
     
        For Each ws In Worksheets
            Select Case UCase(ws.Name)
               Case "CADRAGE_WIP_TAJ", "CADRAGE_WIP_DLO", "CADRAGE_CA_TAJ", "CADRAGE_CA_DLO"
               With ws
     
                    Sheets(ws.Name).Select
                    Range("A2").Select
                    Range(Selection, Selection.End(xlToRight)).Select
                    Range(Selection, Selection.End(xlToRight)).Select
                    Range(Selection, Selection.End(xlToRight)).Select
                    Range(Selection, Selection.End(xlToRight)).Select
                    Range(Selection, Selection.End(xlToRight)).Select
                    Range(Selection, Selection.End(xlDown)).Select
                    Range(Selection, Selection.End(xlDown)).Select
                    Range(Selection, Selection.End(xlDown)).Select
                    Range(Selection, Selection.End(xlDown)).Select
                    Range(Selection, Selection.End(xlDown)).Select
                    Range(Selection, Selection.End(xlDown)).Select
     
                    Sheets.Add
     
                    j = ActiveSheet.Index
     
                    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
                        "ws.Name!R2C1:R1048576C10", Version:=xlPivotTableVersion14). _
                        CreatePivotTable TableDestination:="Sheet" & j & "!R3C1", TableName:=("PivotTable" & i) _
                        , DefaultVersion:=xlPivotTableVersion14
     
                    Sheets("Sheet" & j).Select
                    Cells(3, 1).Select
                    With ActiveSheet.PivotTables("PivotTable" & i).PivotFields("TypologieFI")
                        .Orientation = xlRowField
                        .Position = 1
                    End With
                    ActiveSheet.PivotTables("PivotTable" & i).AddDataField ActiveSheet.PivotTables( _
                        "PivotTable" & i).PivotFields("TypologieFI"), "Count of TypologieFI", xlCount
                    ActiveSheet.PivotTables("PivotTable" & i).AddDataField ActiveSheet.PivotTables( _
                        "PivotTable" & i).PivotFields("En-cours Indicateurs"), _
                        "Count of En-cours Indicateurs", xlCount
                    ActiveSheet.PivotTables("PivotTable" & i).AddDataField ActiveSheet.PivotTables( _
                        "PivotTable" & i).PivotFields("En-cours Finance"), "Count of En-cours Finance", _
                        xlCount
                    ActiveSheet.PivotTables("PivotTable" & i).AddDataField ActiveSheet.PivotTables( _
                        "PivotTable" & i).PivotFields("EcartFI"), "Count of EcartFI", xlCount
                    With ActiveSheet.PivotTables("PivotTable" & i).PivotFields( _
                        "Count of En-cours Indicateurs")
                        .Caption = "Sum of En-cours Indicateurs"
                        .Function = xlSum
                    End With
                    With ActiveSheet.PivotTables("PivotTable" & i).PivotFields( _
                        "Count of En-cours Finance")
                        .Caption = "Sum of En-cours Finance"
                        .Function = xlSum
                    End With
     
                i = i + 1
     
            End With
            End Select
            Next ws
     
    End Sub
    Merci pour vos suggestions et votre attention.

    EDIT : A déplacer SVP dans le forum Macros et VBA ! Merci

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    sur qu'elle ligne l'erreur ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 16
    Par défaut
    Merci Modo,

    Depuis la 37ème ligne ! please save me

    Quand je remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TableDestination:="Sheet" & j & "!R3C1"
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TableDestination:=("Sheet" & j & "!R3C1")
    j'obtiens l'erreur suivante : Run Time Error '1004': Application-defined or object-defined error


    merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    j'ai fait une class pour un autre client du forum.
    regarde l'exemple:
    c'est un fichier zip il faut décompresser le répertoire en entier!
    Fichiers attachés Fichiers attachés

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 16
    Par défaut
    Merci rdurupt pour la réponse

    Le code apparemment est très bien fait, je vais bien l'explorer cette aprèm et te tiendrai au courant du résultat ici !

    Merci bcp

Discussions similaires

  1. Ecrire après un tableau en vba
    Par asphalte01 dans le forum VBA Word
    Réponses: 4
    Dernier message: 04/03/2009, 12h46
  2. Gestion de tableau en VBA
    Par lilian65 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/02/2009, 17h37
  3. traiter un tableau en vba
    Par jrege75 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/01/2009, 21h48
  4. tableau en VBA
    Par Daranc dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/09/2008, 10h22
  5. [VBA-E] Comment créer un tableau sous vba excel
    Par jeanpierreco dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/01/2007, 09h52

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