VBa : créer plusieurs TCD sur les mêmes données (excel2007)
10 réponses
Le Nordiste
Bonjour,
L'enregistreur de macro est mon "ennemi"
Je veux cr=E9er deux TCD =E0 partir des m=EAmes donn=E9es (feuille "Donn=E9=
es")
sur la feuille "TCD".
J'utilise l'enregistreur de macro, mais je n'arrive pas =E0 d=E9rouler
l'enregistrement sans Pb.
m=EAme en supprimant les colones o=F9 j'ai plac=E9 les TCD,
m=EAme en supprimant carr=E9ment la feuille,
Pourquoi tant de haine ????
J'aimerais aussi nommer les TCD d'un nom explicite
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
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" a écrit dans le message de 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.
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" <jean-paul.bataille@neufcegetel.fr> a écrit dans le message de
news: 617b332a-90d8-4fed-af5e-9fcc002daa07@59g2000hsb.googlegroups.com...
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
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" a écrit dans le message de 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
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.
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 ?
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
Avant de recréer un TDC, tu dois d'abord effacer le tdc existant.
"Le Nordiste" a écrit dans le message de 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.
Avant de recréer un TDC, tu dois d'abord effacer
le tdc existant.
Fichier exemple là : http://cjoint.com/?iiqZ6pfJ3c
"Le Nordiste" <jean-paul.bataille@neufcegetel.fr> a écrit dans le message de
news: d804bb9b-026e-455b-87e3-860fcfd0186f@59g2000hsb.googlegroups.com...
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 ?
"Le Nordiste" a écrit dans le message de 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
> 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-
Une autre question : pourquoi ne peut on executer ces instructions en mode "arret" ou pas à pas ?
Bonsoir et bon week end
michdenis
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" a écrit dans le message de 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-
Une autre question : pourquoi ne peut on executer ces instructions en mode "arret" ou pas à pas ?
Bonsoir et bon week end
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" <jean-paul.bataille@neufcegetel.fr> a écrit dans le message de
news: 885e3723-b6c8-45e6-a787-0a319ac7060d@p25g2000hsf.googlegroups.com...
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-
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" a écrit dans le message de 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-
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.
Excel 2007 -> connais pas !
"Le Nordiste" <jean-paul.bataille@neufcegetel.fr> a écrit dans le message de
news: 8fa1c71f-dc04-4ee9-b91a-9939952d4fe8@l64g2000hse.googlegroups.com...
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, _
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.
En passant, vérifie dans l'aide de ta version excel 2007
si ce paramêtre est toujours bon :
DefaultVersion:=xlPivotTableVersion10)
"Le Nordiste" <jean-paul.bataille@neufcegetel.fr> a écrit dans le message de
news: 8fa1c71f-dc04-4ee9-b91a-9939952d4fe8@l64g2000hse.googlegroups.com...
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, _
On 11 août, 14:40, "michdenis" <michde...@hotmail.com> wrote:
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