Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Message d'erreur vba création de tableaux croisés dynamique

Daroum

XLDnaute Nouveau
Bonjour le forum ,


Je bloque sur un bout de code que j'ai repris de l'enregistreur de macro en insérant un TCD.
Le code fonctionne normalement jusqu'à ce qu'il bloque sur une feuille comportant plus de 700 000 lignes ou il ne me crée pas de TCD et renvoie un message d'erreur 13 incompatibilité de type. La macro est supposée insérer un TCD en prenant pour source une plage dans chaque feuille du classeur.

Voici mon Code

Code:
Sub TraitementTCD()

Application.ScreenUpdating = False

Dim derl As Long
Dim WS As Worksheet

For Each WS In ActiveWorkbook.Worksheets
WS.Activate
derl = Range("A" & Rows.Count).End(xlUp).Row
Select Case WS.Name
Case "ISS-PRV", "RCT-PO"

    Sheets.Add
    ActiveSheet.Name = "Pivot " & WS.Name
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        Sheets(WS.Name).Range("A1:H" & derl), Version:=xlPivotTableVersion12).CreatePivotTable _
        TableDestination:=Sheets("Pivot " & WS.Name).Range("A1"), TableName:="TCD " & WS.Name
        
    Sheets("Pivot " & WS.Name).Activate

    ActiveWorkbook.ShowPivotTableFieldList = True
    With ActiveSheet.PivotTables("TCD " & WS.Name).PivotFields( _
        "Item Number")
        .Orientation = xlRowField
        .Position = 1
    End With
    ActiveSheet.PivotTables("TCD " & WS.Name).AddDataField ActiveSheet. _
        PivotTables("TCD " & WS.Name).PivotFields("Loc Qty Change"), _
        "Somme de Loc Qty Change", xlSum
    With ActiveSheet.PivotTables("TCD " & WS.Name).PivotFields( _
        "Ship Type")
        .Orientation = xlPageField
        .Position = 1
    End With
    ActiveSheet.PivotTables("TCD " & WS.Name).PivotFields("Ship Type"). _
        ClearAllFilters
    ActiveSheet.PivotTables("TCD " & WS.Name).PivotFields("Ship Type"). _
        CurrentPage = "Inventory"
        
        Case Is <> "ISS-PRV", "RCT-PO"

    Range("C6").Activate
    Sheets.Add
    ActiveSheet.Name = "Pivot " & WS.Name
    
        ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        Sheets(WS.Name).Range("A1:H" & derl), Version:=xlPivotTableVersion12).CreatePivotTable _
        TableDestination:=Sheets("Pivot " & WS.Name).Range("A1"), TableName:="TCD " & WS.Name

    With ActiveSheet.PivotTables("TCD " & WS.Name).PivotFields( _
        "Item Number")
        .Orientation = xlRowField
        .Position = 1
    End With
    ActiveSheet.PivotTables("TCD " & WS.Name).AddDataField ActiveSheet. _
        PivotTables("TCD " & WS.Name).PivotFields("Loc Qty Change"), _
        "Somme de Loc Qty Change", xlSum
        
End Select

Next WS


Application.ScreenUpdating = True


End Sub

Je ne peux pas poster mon fichier vu qu'il dépasse la taille permise de dépôt.
 

Daroum

XLDnaute Nouveau
Re : Message d'erreur vba création de tableaux croisés dynamique

Bonjour caillou ,

il renvoie un message d'erreur sur la totalité du code suivant:

c'est dans le deuxième case de select case.

Code:
        ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        Sheets(WS.Name).Range("A1:H" & derl), Version:=xlPivotTableVersion12).CreatePivotTable _
        TableDestination:=Sheets("Pivot " & WS.Name).Range("A1"), TableName:="TCD " & WS.Name
 

Discussions similaires

Réponses
1
Affichages
2 K
Compte Supprimé 979
C
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…