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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Sheets(1).Select
Cells.Select
Selection.Delete Shift:=xlUp
Puis dé-fusionne des cellules :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Sheets(2).Select
Range("A6:D6").Select
Selection.UnMerge
Elle cherche la fin du tableau de données :
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
Et crée un tableau pivot (macro enregistrée) :
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
Enfin, elle sélectionne une cellule :
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...

Merci d'avance !