Problème avec un TCD et macro

corate92

XLDnaute Junior
Bonjour à tous!​

J'en appelle à votre aide sur ce qui concerne VBA car là je m'arrache les cheveux de la tête:eek:!

J'essaie via une macro de créer automatiquement un Tableau Croisé Dynamique, j'ai donc utilisé l'enregistreur, jusqu'ici pas de soucis.

MAIS (car il faut bien qu'il en est un!:() une fenetre s'affiche et m'indique "erreur exécution 1004, erreur définie par application ou par l'objet"

La partie en gras/rouge ci dessous s'affiche en jaune

Code:
Sub bilan_via_TCD()
'
' bilan_via_TCD Macro
' Macro enregistrée le 21/04/2008 par Corate92
'

'
If ActiveSheet.Name = "FEBRUARY" Then
        Range("A16:U1000").Select
         [B][COLOR="Red"]ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
        "FEBRUARY!R16C1:R1000C21").CreatePivotTable TableDestination:= _
        "'[Projects Status - CRAs- year 2008 EN DEVELOPPEMENT.xls]BILAN_FEV08'!R2C1", _
        TableName:="Tableau croisé dynamique3", DefaultVersion:= _
        xlPivotTableVersion10[/COLOR][/B]         ActiveWorkbook.ShowPivotTableFieldList = True
         ActiveWindow.SmallScroll Down:=-21
           With ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("COUNTRY" _
        )
        .Orientation = xlRowField
        .Position = 1
         End With
         With ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("CRA")
        .Orientation = xlColumnField
        .Position = 1
         End With
         ActiveSheet.PivotTables("Tableau croisé dynamique3").AddDataField ActiveSheet. _
        PivotTables("Tableau croisé dynamique3").PivotFields("Center"), _
        "Nombre de Center", xlCount
         ActiveSheet.PivotTables("Tableau croisé dynamique3").AddDataField ActiveSheet. _
        PivotTables("Tableau croisé dynamique3").PivotFields( _
        "Number of days of visits current month"), _
        "Nombre de Number of days of visits current month", xlCount
       ActiveWorkbook.ShowPivotTableFieldList = False
       
ElseIf ActiveSheet.Name = "MARCH" Then
        Range("A16:U1000").Select
         ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
        "MARCH!R16C1:R1000C21").CreatePivotTable TableDestination:= _
        "'[Projects Status - CRAs- year 2008 EN DEVELOPPEMENT.xls]BILAN_MAR08'!R2C1", _
        TableName:="Tableau croisé dynamique3", DefaultVersion:= _
        xlPivotTableVersion10
         ActiveWorkbook.ShowPivotTableFieldList = True
         ActiveWindow.SmallScroll Down:=-21
            With ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("COUNTRY" _
        )
        .Orientation = xlRowField
        .Position = 1
         End With
         With ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("CRA")
        .Orientation = xlColumnField
        .Position = 1
         End With
         ActiveSheet.PivotTables("Tableau croisé dynamique3").AddDataField ActiveSheet. _
        PivotTables("Tableau croisé dynamique3").PivotFields("Center"), _
        "Nombre de Center", xlCount
         ActiveSheet.PivotTables("Tableau croisé dynamique3").AddDataField ActiveSheet. _
        PivotTables("Tableau croisé dynamique3").PivotFields( _
        "Number of days of visits current month"), _
        "Nombre de Number of days of visits current month", xlCount
       ActiveWorkbook.ShowPivotTableFieldList = False

ElseIf ActiveSheet.Name = "APRIL" Then
         Range("A16:U1000").Select
         ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
        "APRIL!R16C1:R1000C21").CreatePivotTable TableDestination:= _
        "'[Projects Status - CRAs- year 2008 EN DEVELOPPEMENT.xls]BILAN_APR08'!R2C1", _
        TableName:="Tableau croisé dynamique3", DefaultVersion:= _
        xlPivotTableVersion10
         ActiveWorkbook.ShowPivotTableFieldList = True
         ActiveWindow.SmallScroll Down:=-21
         With ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("COUNTRY" _
        )
        .Orientation = xlRowField
        .Position = 1
         End With
         With ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("CRA")
        .Orientation = xlColumnField
        .Position = 1
         End With
         ActiveSheet.PivotTables("Tableau croisé dynamique3").AddDataField ActiveSheet. _
        PivotTables("Tableau croisé dynamique3").PivotFields("Center"), _
        "Nombre de Center", xlCount
         ActiveSheet.PivotTables("Tableau croisé dynamique3").AddDataField ActiveSheet. _
        PivotTables("Tableau croisé dynamique3").PivotFields( _
        "Number of days of visits current month"), _
        "Nombre de Number of days of visits current month", xlCount
       ActiveWorkbook.ShowPivotTableFieldList = False
       
ElseIf ActiveSheet.Name = "MAY" Then
          Range("A16:U1000").Select
         ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
        "MAY!R16C1:R1000C21").CreatePivotTable TableDestination:= _
        "'[Projects Status - CRAs- year 2008 EN DEVELOPPEMENT.xls]BILAN_MAY08'!R2C1", _
        TableName:="Tableau croisé dynamique3", DefaultVersion:= _
        xlPivotTableVersion10
         ActiveWorkbook.ShowPivotTableFieldList = True
         ActiveWindow.SmallScroll Down:=-21
         With ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("COUNTRY" _
        )
        .Orientation = xlRowField
        .Position = 1
         End With
         With ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("CRA")
        .Orientation = xlColumnField
        .Position = 1
         End With
         ActiveSheet.PivotTables("Tableau croisé dynamique3").AddDataField ActiveSheet. _
        PivotTables("Tableau croisé dynamique3").PivotFields("Center"), _
        "Nombre de Center", xlCount
         ActiveSheet.PivotTables("Tableau croisé dynamique3").AddDataField ActiveSheet. _
        PivotTables("Tableau croisé dynamique3").PivotFields( _
        "Number of days of visits current month"), _
        "Nombre de Number of days of visits current month", xlCount
       ActiveWorkbook.ShowPivotTableFieldList = False
       
       End If
       
 End Sub

aie aie
Voyez vous de quoi il s'agit?
Je vous mets le fichier en PJ en espérant que cela puisse vous aider...

Merci beaucoup si quelqu'un m'aider...

Cora
 

Pièces jointes

  • TEST.xls
    27.5 KB · Affichages: 45
  • TEST.xls
    27.5 KB · Affichages: 47
  • TEST.xls
    27.5 KB · Affichages: 45

Pierwak

XLDnaute Occasionnel
Re : Problème avec un TCD et macro

Salut a toi corate

Dommage que tu n'ai pas laissé ton code dans le fichier ca aurait été plus pratique pour faire des essais... J'ai eu le meme problème récemment, chez moi ca venait de la définition du range dans source_data. Je l'ai résolu en définissant une variable range que j'apelle ensuite.


exemple :
Code:
Dim rgetab As Range
'Le set du range est obligatoire
Set rgetab = USD.Range(USD.Cells(5, 1), USD.Cells(L, 72))
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
        rgetab).CreatePivotTable TableDestination:="", TableName:= _
        "PivotTable3", DefaultVersion:=xlPivotTableVersion10
'comme tu le vois j'apelle directement mon range nommé ainsi. Et la je n'ai plus cette erreur 1004

Voilà, essaye ceci, si ca ne marche pas essaye de remettre ton code dans ton fichier et de nous l'envoyer...
A te lire
 

Discussions similaires

Réponses
1
Affichages
1 K
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 225
Messages
2 086 411
Membres
103 201
dernier inscrit
centrale vet