Problème avec les pivotTable (Tableau croisé dynamique)

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

siocnarf

XLDnaute Occasionnel
Bonjour,

Je veux créer un tableau croisé Dynamique en VBA et j'ai toute sorte de petit problème. Je veux m'arracher les cheveux.

Préambule:
Ma macro est dans le chiffrier 1
Les données à traiter sont sur Feuil2 du chiffrier 2
Le tableau croisé dynamique devrait être sur Feuil3 du chiffrier 2.

À la ligne "Set Prange", j'obtiens une "Erreur 13: Incompatibilité de type"


Code:
Windows("Tableau de saisie des serveurs_20091211_130105.xls").Activate
Sheets("Feuil3").Select

Set WSD = Worksheets("Feuil3")

' Delete any prior pivot tables
For Each PT In WSD.PivotTables
    PT.TableRange2.Clear
Next PT

Sheets("Feuil3").Range("K1").Select

'Ici je vais rechercher les informations de la dernières ligne et de la dernière colonne

FinalRow = Sheets("Feuil2").Cells(Application.Rows.Count, 1).End(xlUp).Row
FinalCol = Sheets("Feuil2").Cells(1, Application.Columns.Count).End(xlToLeft).Column

Set PRange = Sheets("Feuil2").Cells(1, 1).Resize(FinalRow, FinalCol)
Set PTCache = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:=PRange)
    
Set PT = PTCache.CreatePivotTable(TableDestination:=WSD.Cells(2, FinalCol + 2), _
    TableName:="Tableau1", DefaultVersion:=xlPivotTableVersion10)
      
      ActiveWorkbook.ShowPivotTableFieldList = True
     
     With ActiveSheet.PivotTables("Tableau1").PivotFields("Système")
        '.Orientation = xlRowField
        '.position = 1
    End With
    
    With ActiveSheet.PivotTables("Tableau1").PivotFields("Type")
        .Orientation = xlColumnField
        .position = 1
    End With
    
    ActiveSheet.PivotTables("Tableau1").AddDataField ActiveSheet. _
        PivotTables("Tableau1").PivotFields( _
        "Liste des codes d'erreurs unifiée"), _
        "Nombre de Liste des codes d'erreurs unifiée", xlCount

Merci,
 
Re : Problème avec les pivotTable (Tableau croisé dynamique)

Bonjour,

J'ai retesté:

Code:
VDataCol1 = Array("Serveurs", 1, "A")
VDataCol3 = Array("Type", 3, "C")
VDataCol10 = Array("Liste des codes d'erreurs unifiée", 10, "J")
VDataCol11 = Array("Système", 11, "K")
VDataCol12 = Array("Message de l'événement", 12, "L")
VFeuilExtractData = Array("Feuil2", 2, "Données extraites")
VFeuilStatData = Array("Feuil3", 3, "Statistiques")
StrTableaudebord = "Tableau de saisie des serveurs_20091211_130105.xls"
IntFinalColStat = 0
IntCoordColPremtableau = 0

Windows(StrTableaudebord).Activate
Sheets(VFeuilStatData(0)).Select

' Define input area and set up a Pivot Cache
FinalRow = Sheets("Feuil2").Cells(Application.Rows.Count, 1).End(xlUp).Row
FinalCol = Sheets("Feuil2").Cells(1, Application.Columns.Count).End(xlToLeft).Column
IntFinalColStat = Sheets("Feuil3").Cells(1, Application.Columns.Count).End(xlToLeft).Column

'Coordonnée de sortie du premier tableau--> Nombre de message pertinents par système
IntCoordPremtableau = "R1C" & IntFinalColStat + 2
StrTitrePremierTableau = "Événements par système"

Avec ce code cela fonctionne:

Code:
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
       VFeuilExtractData(0) & "!R1C1:R" & FinalRow & "C" & FinalCol).CreatePivotTable TableDestination:= _
       "'[" & StrTableaudebord & "]" & VFeuilStatData(0) & "'!" & IntCoordPremtableau, _
       TableName:="Tableau1", DefaultVersion:= _
       xlPivotTableVersion10
   ActiveWorkbook.ShowPivotTableFieldList = True

   With ActiveSheet.PivotTables("Tableau1").PivotFields(VDataCol11(0) _
        )
        .Orientation = xlRowField
        .position = 1
    End With
    With ActiveSheet.PivotTables("Tableau1").PivotFields(VDataCol3(0))
        .Orientation = xlColumnField
        .position = 1
    End With
    ActiveSheet.PivotTables("Tableau1").AddDataField ActiveSheet. _
        PivotTables("Tableau1").PivotFields( _
        VDataCol10(0)), _
        StrTitrePremierTableau, xlCount

Et maintenant avec ce code cela semble fonctionner:

Code:
Set PTCache = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:=VFeuilExtractData(0) & "!R1C1:R" & FinalRow & "C" & FinalCol)
Set PT = PTCache.CreatePivotTable(TableDestination:= _
       "'[" & StrTableaudebord & "]" & VFeuilStatData(0) & "'!" & IntCoordPremtableau, TableName:="Tableau1", DefaultVersion:=xlPivotTableVersion10)

Je ne suis pas certain de comprendre pourquoi cela fonctionnerait plus ici...

Merci,
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour