VBa : créer plusieurs TCD sur les mêmes données (excel2007)

Le
Le Nordiste
Bonjour,


L'enregistreur de macro est mon "ennemi"

Je veux créer deux TCD à partir des mêmes données (feuille "Donné=
es")
sur la feuille "TCD".

J'utilise l'enregistreur de macro, mais je n'arrive pas à dérouler
l'enregistrement sans Pb.
même en supprimant les colones où j'ai placé les TCD,
même en supprimant carrément la feuille,

Pourquoi tant de haine ????

J'aimerais aussi nommer les TCD d'un nom explicite


Merci de votre aide.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #16495941
Un petit exemple simple

'-----------------------------
Sub PivotTable()

Dim Adr As String 'Source
Dim Adr1 As String 'Destination
Dim PT As PivotTable

'Définir où sera copié le pivottable
With Worksheets("Feuil1")
Adr1 = .Name & "!" & .Range("A1").Address
'Supprime l'ancien pivotcache
.Range("A1").CurrentRegion.Delete (xlUp)
End With

With Worksheets("Feuil2")
'Définir où sont les données pour le pivotcache
Adr = .Name & "!" & .Range("A1:B" & _
.Range("B65536").End(xlUp).Row).Address

'Création du PivotTable
Set PT = ActiveWorkbook.PivotCaches.Add _
(SourceType:=xlDatabase, SourceData:=Range(Adr)) _
.CreatePivotTable(TableDestination:=Range(Adr1), _
TableName:="Denis", DefaultVersion:=xlPivotTableVersion10)
With PT
.AddFields RowFields:="Élève"
.PivotFields("résultat").Orientation = xlDataField
End With
End With

End Sub



"Le Nordiste" news:
Bonjour,


L'enregistreur de macro est mon "ennemi"

Je veux créer deux TCD à partir des mêmes données (feuille "Données")
sur la feuille "TCD".

J'utilise l'enregistreur de macro, mais je n'arrive pas à dérouler
l'enregistrement sans Pb.
même en supprimant les colones où j'ai placé les TCD,
même en supprimant carrément la feuille,

Pourquoi tant de haine ????

J'aimerais aussi nommer les TCD d'un nom explicite


Merci de votre aide.
Le Nordiste
Le #16504001
Merci d eton aide Michdenis,


Cela me semble convenir, aprés adaptation bien évidemment ,
mais je n'arrive pâs à recréer le TCD si je l'efface, si je supprime
les colonnes du TCD et même si je supprime la page.
Il faut surement TUER le TCD mais comment ?


Bon WE.
michdenis
Le #16505121
Avant de recréer un TDC, tu dois d'abord effacer
le tdc existant.


Fichier exemple là : http://cjoint.com/?iiqZ6pfJ3c



"Le Nordiste" news:
Merci d eton aide Michdenis,


Cela me semble convenir, aprés adaptation bien évidemment ,
mais je n'arrive pâs à recréer le TCD si je l'efface, si je supprime
les colonnes du TCD et même si je supprime la page.
Il faut surement TUER le TCD mais comment ?


Bon WE.
Le Nordiste
Le #16507331
> Avant de recréer un TDC, tu dois d'abord effacer
le tdc existant.



Ça je m'en doutais mais comment ?
Je n'effaçais que sa "trace" sur la feuille et pas le "JeNeSaisQuoi'
derrière tout ça.
-Qui reste à m'expliquer-

Voila ce que je cherchais :

Feuil1.PivotTables("Denis").PivotSelect "", xlDataAndLabel, True
Selection.Clear

Une autre question : pourquoi ne peut on executer ces instructions en
mode "arret" ou pas à pas ?

Bonsoir et bon week end
michdenis
Le #16507321
Tu auras noté que cette ligne de code fait la même chose
dans mon petit exemple
****.Range("A1").CurrentRegion.Clear

que
Feuil1.PivotTables("Denis").PivotSelect "", xlDataAndLabel, True
Selection.Clear

Cependant, dans la dernière, elle est plus complète si tu as par
exemple un champ (s) dans ton TDC car dans ce cas,
.Range("A1").CurrentRegion.Clear n'efface pas ce champ
car ne fait pas parti de la sélection retenue par CurrentRegion.
et fait planter la procédure.

| pourquoi ne peut on executer ces instructions en
| mode "arret" ou pas à pas ?

Les 2 petites procédures du fichier exemple peuvent s'exécuter
en pas en pas sans aucun problème. La difficulté que tu éprouves
doit être locale !!!




"Le Nordiste" news:

Avant de recréer un TDC, tu dois d'abord effacer
le tdc existant.



Ça je m'en doutais mais comment ?
Je n'effaçais que sa "trace" sur la feuille et pas le "JeNeSaisQuoi'
derrière tout ça.
-Qui reste à m'expliquer-

Voila ce que je cherchais :

Feuil1.PivotTables("Denis").PivotSelect "", xlDataAndLabel, True
Selection.Clear

Une autre question : pourquoi ne peut on executer ces instructions en
mode "arret" ou pas à pas ?

Bonsoir et bon week end
Le Nordiste
Le #16522111
J'essaye ce matin en vrai grandeur :

avec le fichier joint : pas de Pb,

avec mon fichier en cours ou sur un petit fichier d'essai : je coince
avec erreur 1004 dans cette partie du code :

'Création du PivotTable
Set PT = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, _

SourceData:=Range(Adr)).CreatePivotTable(TableDestination:=Range(Adr1),
_
TableName:="monTCD",
DefaultVersion:=xlPivotTableVersion10)

et pourtant mes adr, adr1 correspondent bien aux bonnes zones.


Je suis sous excel 2007 mais de là ne vient pas le Pb


Merci pour votre collaboration.
michdenis
Le #16523901
Excel 2007 -> connais pas !



"Le Nordiste" news:
J'essaye ce matin en vrai grandeur :

avec le fichier joint : pas de Pb,

avec mon fichier en cours ou sur un petit fichier d'essai : je coince
avec erreur 1004 dans cette partie du code :

'Création du PivotTable
Set PT = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, _

SourceData:=Range(Adr)).CreatePivotTable(TableDestination:=Range(Adr1),
_
TableName:="monTCD",
DefaultVersion:=xlPivotTableVersion10)

et pourtant mes adr, adr1 correspondent bien aux bonnes zones.


Je suis sous excel 2007 mais de là ne vient pas le Pb


Merci pour votre collaboration.
michdenis
Le #16523871
En passant, vérifie dans l'aide de ta version excel 2007
si ce paramêtre est toujours bon :

DefaultVersion:=xlPivotTableVersion10)




"Le Nordiste" news:
J'essaye ce matin en vrai grandeur :

avec le fichier joint : pas de Pb,

avec mon fichier en cours ou sur un petit fichier d'essai : je coince
avec erreur 1004 dans cette partie du code :

'Création du PivotTable
Set PT = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, _

SourceData:=Range(Adr)).CreatePivotTable(TableDestination:=Range(Adr1),
_
TableName:="monTCD",
DefaultVersion:=xlPivotTableVersion10)

et pourtant mes adr, adr1 correspondent bien aux bonnes zones.


Je suis sous excel 2007 mais de là ne vient pas le Pb


Merci pour votre collaboration.
Le Nordiste
Le #16524551
On 11 août, 14:40, "michdenis" En passant, vérifie dans l'aide de ta version excel 2007
si ce paramêtre est toujours bon :

DefaultVersion:=xlPivotTableVersion10)


Je ne dispose pas de l'aide en ligne - Pb d'install-
par contre lorsque je crée un TCD l'enregistreur me donne

ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase,
SourceData:= _
"analyse Fa!L1C4:L34197C19", Version:=xlPivotTableVersion12).
_
CreatePivotTable TableDestination:="BAP!L5C2", TableName:= _
"Tableau croisé dynamique1",
DefaultVersion:=xlPivotTableVersion12 <=== ici ====

Je place ce 12 dans ton code, et ça coince.
michdenis
Le #16525661
Désolé mais je n'ai pas la version 2007 pour tester
Publicité
Poster une réponse
Anonyme