yanounou91 | Bonjour,
J'ai créé un TCD sur VBA 2003 (qui fonctionne egalement sur VBA 2007). Mais lors du code de la condition (sélection) de valeurs sur un champ de tableau croisé dynamique, il y a une erreur "incompatibilité de type" lors de l'execution de la macro sur VBA 2010 [b](ligne code 131 et 132) Code :
- . J'ai joint le code ci-dessous.
- Pourriez vous me dire, SVP, pourquoi cette partie de code ne fonctionne pas sur VBA 2010 alors qu'il n'y a aucun probleme sur les versions 2007 et 2003 ?
- En vous remerciant.
- [cpp]Sub FFonctionnement()
- '
- ' Macro enregistrée le 15/01/2013 par b276573
- '
- '
- 'Sheets("intéresst" ).Select
- 'ActiveWindow.SelectedSheets.Visible = False
- 'And sht.Name <> "nom onglet" à ajouter si on veut laisser un autre onglet egalement
-
- Dim sht As Object
- For Each sht In ActiveWorkbook.Worksheets
- If sht.Name <> "Extraction H - frais fonct" Then sht.Visible = False
- Next sht
- Application.DisplayAlerts = False
- Worksheets("Extraction H - frais fonct" ).Name = "Base"
-
-
- Worksheets("Base" ).Activate
- ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
- "'Base'!R1C1:R65000C22" ).CreatePivotTable TableDestination:="", TableName:= _
- "Tableau croisé dynamique1", DefaultVersion:=xlPivotTableVersion10
- ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
- ActiveSheet.Cells(3, 1).Select
- ActiveSheet.PivotTables("Tableau croisé dynamique1" ).AddFields RowFields:= _
- Array("Service Herakles", "centre de frais", "Données" )
-
- With ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields( _
- "Solde Réalise 2012" )
- .Orientation = xlDataField
- .Caption = "Réalisé 2012"
- .Position = 1
- .Function = xlSum
- .NumberFormat = "#,##0"
- End With
- With ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields( _
- "Solde Réalisé" )
- .Orientation = xlDataField
- .Caption = "Réalisé 2013"
- .Position = 2
- .Function = xlSum
- .NumberFormat = "#,##0"
- End With
- With ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields( _
- "ENGAGE" )
- .Orientation = xlDataField
- .Caption = "Engagé"
- .Position = 3
- .Function = xlSum
- .NumberFormat = "#,##0"
- End With
- With ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields("Actu3 2012" )
- .Orientation = xlDataField
- .Caption = "Actu 2012"
- .Position = 4
- .Function = xlSum
- .NumberFormat = "#,##0"
- End With
- With ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields("Notif 2013" )
- .Orientation = xlDataField
- .Caption = " Budget 2013"
- .Position = 5
- .Function = xlSum
- .NumberFormat = "#,##0"
- End With
- With ActiveSheet.PivotTables("Tableau croisé dynamique1" ).DataPivotField
- .Orientation = xlColumnField
- .Position = 1
- End With
-
- With ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields("Etablissement" ): .Orientation = xlPageField: .Position = 1: End With
- With ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields("Secteur Herakles" ): .Orientation = xlPageField: .Position = 2: End With
- With ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields("poste" ): .Orientation = xlPageField: .Position = 3: End With
- With ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields("lib poste" ): .Orientation = xlPageField: .Position = 4: End With
- With ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields("Sous-section / Centre de frais" ): .Orientation = xlPageField: .Position = 5: End With
- With ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields("Type de poste" ): .Orientation = xlPageField: .Position = 6: End With
- With ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields("direction Herakles" ): .Orientation = xlPageField: .Position = 7: End With
- ActiveWorkbook.ShowPivotTableFieldList = False
-
- ActiveWorkbook.ShowPivotTableFieldList = True
- ActiveWorkbook.ShowPivotTableFieldList = False
- Columns("H:H" ).ColumnWidth = 20.14
- Rows("10:10" ).RowHeight = 27.75
- 'Range("H10" ) = " Engagé N non " & Chr(10) & "soldé à date"
- 'Range("H10" ).Select
- 'With Selection
- '.HorizontalAlignment = xlGeneral
- '.VerticalAlignment = xlBottom
- '.WrapText = True
- '.Orientation = 0
- '.AddIndent = False
- '.IndentLevel = 0
- '.ShrinkToFit = False
- '.ReadingOrder = xlContext
- '.MergeCells = False
- 'End With
- ActiveSheet.PivotTables("Tableau croisé dynamique1" ).CalculatedFields.Add _
- "Engagé + réel", "='Solde Réalisé' +'ENGAGE'", True
- ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields("Engagé + réel" ). _
- Orientation = xlDataField
- ActiveSheet.PivotTables("Tableau croisé dynamique1" ).DisplayErrorString = True
- With ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields( _
- "Somme de Engagé + réel" )
- .NumberFormat = "#,##0"
- End With
- ActiveSheet.PivotTables("Tableau croisé dynamique1" ).DataPivotField.PivotItems( _
- "Somme de Engagé + réel" ).Caption = "Engagé + réalisé"
-
-
-
- ActiveSheet.PivotTables("Tableau croisé dynamique1" ).CalculatedFields.Add _
- "Avancement", "='Solde Réalisé' /'Notif 2013'", True
- ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields("Avancement" ). _
- Orientation = xlDataField
- ActiveSheet.PivotTables("Tableau croisé dynamique1" ).DisplayErrorString = True
- Range("I12" ).Select
- With ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields( _
- "Somme de Avancement" )
- .NumberFormat = "0%"
- End With
- ActiveSheet.PivotTables("Tableau croisé dynamique1" ).DataPivotField.PivotItems( _
- "Somme de Avancement" ).Caption = "Avancement %"
-
- Columns("A:A" ).ColumnWidth = 35
-
- Dim AB As PivotItem
- For Each AB In ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields("Service Herakles" ).PivotItems
- If (AB.Name <> "(vide)" ) Then
- With ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields( _
- "Service Herakles" ).PivotItems(AB.Name).Visible = True
- End With
- Else:
- With ActiveSheet.PivotTables("Tableau croisé dynamique1" ).PivotFields( _
- "Service Herakles" )
- .PivotItems(AB.Name).Visible = False
- End With
- End If
- Next AB
|
Cordialement.
Yannick Message édité par yanounou91 le 19-12-2014 à 19:11:47
|