VBA TCD Enregistrement de Macro

lorisboogie Messages postés 9 Date d'inscription jeudi 30 septembre 2010 Statut Membre Dernière intervention 19 novembre 2010 - 18 nov. 2010 à 12:12
alf049 Messages postés 6 Date d'inscription jeudi 18 novembre 2010 Statut Membre Dernière intervention 1 décembre 2010 - 19 nov. 2010 à 09:51
Bonjour,

Je suis sur un projet excel qui me rend fou ! :) Parmis mes nombreux problèmes j'en ai un en particulier :
J'ai enregistrer une macro pour créer un TCD. Ce TCD doit être lancé à partir d'une interface ou l'on pourra sélectionnera un type d'étude voulu sur une base de donnée et en cliquant sur un boutton OK, le TCD correspondant s'affichera.

Le problème survient dans la macro enregistrer pour créer le TCD:

Voici le code :

'TDouragan1 Macro'


ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= "ouragan", Version:=xlPivotTableVersion10).CreatePivotTable TableDestination :="Courbes ouragans!R3C2", TableName:="Tableau croisé dynamique4", DefaultVersion:=xlPivotTableVersion10
Sheets("Courbes ouragans").Select
Cells(3, 2).Select
ActiveWorkbook.ShowPivotTableFieldList = True
ActiveWindow.SmallScroll Down:=-12
With ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields("Année")
.Orientation = xlPageField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields("Zone Géographique")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields("Force")
.Orientation = xlColumnField
.Position = 1
End With
ActiveSheet.PivotTables("Tableau croisé dynamique4").AddDataField ActiveSheet. _
PivotTables("Tableau croisé dynamique4").PivotFields("Nom "), "Nombre de Nom " , xlCount

Le code mis en rouge et la partie du code qui plante. Le débogage me fait survenir une erreur disant : "Propriété ou méthode non géré par cet objet"

J'ai regardé un peu partout, mais je ne vois pas ou est le problème...

Merci de votre aide :)

Loris

7 réponses

alf049 Messages postés 6 Date d'inscription jeudi 18 novembre 2010 Statut Membre Dernière intervention 1 décembre 2010
18 nov. 2010 à 15:31
Bonjour,
j'ai exactement le meme soucis que j'ai posté quelques heures avant vous.

la réponse m'intèresse
0
lorisboogie Messages postés 9 Date d'inscription jeudi 30 septembre 2010 Statut Membre Dernière intervention 19 novembre 2010
18 nov. 2010 à 16:03
Salut !

Mon problème n'est pas résolu , mais si ca peut t'aider j'ai trouver les éléments de réponses suivants à notre problème :

-faire attention que la dénomination ligne/colonne soir R4C4 et pas L4C4 par exemple (ca arrive lorsque tu enregistres ta macro sous un excel en francais)

- bien spécifié le nom du classeur dans lequel tu envoies ton TCD, ainsi que le nom de la feuille, et la cellule de départ ou se situera ton coin sup gauche de ton tableau (pour moi c'est cells(3;2) donc R3C2.

-changer le tableName tableau dynamique 15 par un nom qui lui est propre

Voilà les modif que j'ai effectué mais ca ne marche toujours pas ceci dit !
Peut etre que tu auras plus de chance que moi....

Voici mon "nouveau" code - toujours en panne sèche...

ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:="Ouragans!R4C2:R198C6").CreatePivotTable Tabledestination:="[Classeur2]Courbes ouragans!R3C2", TableName:="TCDouragan1", DefaultVersion:=xlPivotTableVersion10
Sheets("Courbes ouragans").Select
Cells(3, 2).Select

HELP !!! ;)
0
alf049 Messages postés 6 Date d'inscription jeudi 18 novembre 2010 Statut Membre Dernière intervention 1 décembre 2010
18 nov. 2010 à 18:17
Merci,
surement utile mais comme tu le soulignes impossible à vérifier.

Je pense que c'est le "DEFAULT.... Version10." qui coince mais comme toi je débute.
En revanche ce qui est sure pour moi c'est que ce TCD doit gérer 140 000 cellules donc normalement par trop lourd pour les arguments utilisés.

A suivre, si un "expert" veux bien nous aider ...
0
alf049 Messages postés 6 Date d'inscription jeudi 18 novembre 2010 Statut Membre Dernière intervention 1 décembre 2010
19 nov. 2010 à 08:06
Bonjour,
regarde sur ce poste il y a une solution artisanale à notre soucis. Je l'ai essayé et cela fonctionne assez bien sauf que ce bloque quand on veut faire avec critère en 2 colonnes. Le débugueur pointe sur ".position 2" alors que c'est censé être bon.

http://www.vbfrance.com/forum/sujet-XLS07-TABLEAU-CROISE-DYNAMIQUE_1253869.aspx

Si tu décoince merci de faire partager
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lorisboogie Messages postés 9 Date d'inscription jeudi 30 septembre 2010 Statut Membre Dernière intervention 19 novembre 2010
19 nov. 2010 à 08:18
Merci du lien ! Je vais essayer ceci de suite ! Je te tiens évidemment au courant si je me débloque ;)

@++
0
lorisboogie Messages postés 9 Date d'inscription jeudi 30 septembre 2010 Statut Membre Dernière intervention 19 novembre 2010
19 nov. 2010 à 08:57
Mon problème n' a été que déplacé !!!!!!!
Maintenant j'ai :
"Erreur d'exécution 1004 , la méthode PivotTableWizard de l'objet _Workbook a échoué "

C'est bien un current région qu'ils disent d'utiliser dans l'autre topic nan ??

Au cas ou tu vois dans mon code une erreur, ou si une bonne personne passe par là ;)

Merci de votre aide !


ActiveWorkbook.PivotTableWizard SourceType:=xlDatabase, SourceData:= _
Sheets("Ouragans").Range("A1").CurrentRegion, TableDestination:="Courbes ouragans!R1C1", TableName:="TCDouragan"
Sheets("Courbes ouragans").Select
Cells(1, 1).Select
ActiveSheet.PivotTables("TCDouragan").AddFields
With ActiveSheet.PivotTables("TCDouragan").PivotFields("Année")
.Orientation = xlPageField
.Position = 1
End With
With ActiveSheet.PivotTables("TCDouragan").PivotFields("Force")
.Orientation = xlColumnField
.Position = 1
End With
With ActiveSheet.PivotTables("TCDouragan").PivotFields("Zone Géographique")
.Orientation = xlRowField
.Position = 1
End With
ActiveSheet.PivotTables("TCDouragan").AddDataField ActiveSheet.PivotTables("TCDouragan"). _
PivotFields("Nom"), "Nombre de Nom", xlSum
0
alf049 Messages postés 6 Date d'inscription jeudi 18 novembre 2010 Statut Membre Dernière intervention 1 décembre 2010
19 nov. 2010 à 09:51
Re,
fait le étape par étape.

En ce qui me concerne mise à part le soucis de multicolonne ca roule.
0
Rejoignez-nous