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
Je ne peux pas poster mon fichier vu qu'il dépasse la taille permise de dépôt.
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.