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

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…