Erreur d'execution '-2147417848' pivotcache [Résolu]

Messages postés
4
Date d'inscription
lundi 2 septembre 2019
Statut
Membre
Dernière intervention
3 septembre 2019
- - Dernière réponse : chaymaek
Messages postés
4
Date d'inscription
lundi 2 septembre 2019
Statut
Membre
Dernière intervention
3 septembre 2019
- 3 sept. 2019 à 14:07
Bonjour,

J'ai une erreur sur l'objet pivotcache de createpivottable (ligne en gras)

Est ce quelqu'un saurait d'où vient le problème ?

Mon code sert à faire des modification sur le fichier de base brut et puis crée un TCD..

Je vous remercie d'avance pour votre aide

Cordialement,

CK

Sub MEPISO()

Application.ScreenUpdating = False

' AJOUTER NOUVELLE COLONNE ARTICLE

Worksheets(1).Select
Columns("K:K").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("K1").Value = "Article"

' DEFINIR LES PARAMETRES

Dim i As Integer
Dim LR As Long
LR = WorksheetFunction.CountA(Range("A:A"))

' REMPLIR COLONNE ARTICLE

For i = 2 To LR
Cells(i, 11) = Cells(i, 9) & Cells(i, 10)
Next i

' AJOUTER NOUVELLE COLONNE ORDERED ML

Worksheets(1).Select
Columns("R:R").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("R1").Value = "Ordered ML"
0
' REMPLIR COLONNE ORDERED ML

For i = 2 To LR
Cells(i, 18) = Cells(i, 17) * Cells(i, 16)
Next i

' AJOUTER NOUVELLE COLONNE CONCATENER

Worksheets(1).Select
Columns("B:B").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("B1").Value = "Concatener"

' REMPLIR COLONNE CONCATENER

For i = 2 To LR
Cells(i, 2) = Cells(i, 1) & Cells(i, 11) & Cells(i, 16)
Next i

' SUPPRIMER LES DOUBLONS

ActiveSheet.Range("A:BM").RemoveDuplicates Columns:=2, Header:=xlYes

' AJOUTER TCD

' DECLARATION DES PARAMETRES

Dim sht As Worksheet
Dim pvtCache As PivotCache
Dim pvt As PivotTable
Dim StartPvt As String
Dim SrcData As String
Dim pf As String
Dim pf_Name As String

' DATA SOURCE

SrcData = ActiveSheet.Name & "!" & Range("A1:BM30000").Address(ReferenceStyle:=xlR1C1)

' CREATION NOUVELLE FEUILLE

Set sht = Sheets.Add
sht.Name = "TCD"

' LOCALISATION TCD

StartPvt = sht.Name & "!" & sht.Range("A3").Address(ReferenceStyle:=xlR1C1)

' CREATION PIVOT CACHE

Set pvtCache = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=SrcData)

' CREATION TCD A PARTIR DU PIVOT CACHE
Set pvt = pvtCache.CreatePivotTable(TableDestination:=StartPvt, TableName:="PivotTable1")

' AJOUTER CHAMPS LIGNE

pvt.PivotFields("Article").Orientation = xlRowField

' AJOUTER CHAMPS COLONNE

pvt.PivotFields("suppliername").Orientation = xlColumnField

' AJOUTER CHAMPS VALEUR

pf = "Ordered ML"
pf_Name = "Somme Ordered"
pvt.AddDataField pvt.PivotFields("Ordered ML"), pf_Name, xlSum

' ENLEVER VIDE DES FILTRES

With Sheets("TCD").PivotTables("PivotTable1").PivotFields("Suppliername")
.PivotItems("(blank)").Visible = False
End With
End Sub

Configuration: Windows / Edge 18.17763
Afficher la suite 

1 réponse

Messages postés
8551
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 septembre 2019
424
0
Merci
bonjour, comme déjà demandé, peux-tu utiliser les balises de code?
peux-tu nous en dire plus: est-ce un nouveau code qui n'a jamais fonctionné?
moi je ferais:
Dim StartPvt As range
' (...)
set StartPvt = sht.[A3]
chaymaek
Messages postés
4
Date d'inscription
lundi 2 septembre 2019
Statut
Membre
Dernière intervention
3 septembre 2019
-
Oui effectivement c'est un nouveau code
Le problème venait de ma source mes données allaient jusqu'à la colonne AO et non BM du coup sans entête de colonne le TCD ne peut pas être créer.
Une fois ce détail corrigé, le code marche parfaitement.
Merci
Commenter la réponse de yg_be