Bonjour,
J'ai créé une macro plutôt simple sous Excel 2007 pour la mettre à disposition de personnes qui utilisent Excel 2003.
Malheureusement, ils ont une erreur '438' (Propriété ou méthode non gérée par cet objet), et je n'ai pas accès à Excel 2003 pour voir d'où vient l'erreur...
Pouvez-vous m'aider trouver le soucis ?
Ma macro supprime les données existantes :
Puis dé-fusionne des cellules :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Sheets(1).Select Cells.Select Selection.Delete Shift:=xlUp
Elle cherche la fin du tableau de données :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Sheets(2).Select Range("A6:D6").Select Selection.UnMerge
Et crée un tableau pivot (macro enregistrée) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Dim ligne_fin As Integer ligne_fin = 26 While Cells(ligne_fin, 1).Value <> "Number" ligne_fin = ligne_fin + 1 Wend
Enfin, elle sélectionne une cellule :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "Données!R25C1:R4008C8", Version:=xlPivotTableVersion10).CreatePivotTable _ TableDestination:="Reporting!R3C1", TableName:="Tableau croisé dynamique1", _ DefaultVersion:=xlPivotTableVersion10 Sheets("Reporting").Select Cells(3, 1).Select With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Number") .Orientation = xlRowField .Position = 1 End With With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _ "Signature") .Orientation = xlPageField .Position = 1 End With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Signature"). _ CurrentPage = "(All)" ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Signature"). _ EnableMultiplePageItems = True ActiveSheet.PivotTables("Tableau croisé dynamique1").AddDataField ActiveSheet. _ PivotTables("Tableau croisé dynamique1").PivotFields("Signature"), _ "Nombre de Signature", xlCount With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _ "Actor role") .Orientation = xlColumnField .Position = 1 End With With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _ "Signature") .Orientation = xlPageField .Position = 1 End With
Je n'ai jamais fait de VBA sous Excel 2003, mais je ne pensais pas que c'était vraiment différent. Je suis bien curieux de savoir en quoi ca diffère...
Code : Sélectionner tout - Visualiser dans une fenêtre à part Range("A2").Select
Merci d'avance !
Partager