Bonjour à vous !
J'ai une macro toute simple qui crée un TCD :
fichier de base = fichier contenant différentes colonnes : N° de compte
(appelé "Livré") ; article commandé ; rubrique de l'article ; quantité
commandée ; chiffre d'affaires (appelé "Net")
TCD obtenu = consolider pour chaque N° de compte le chiffre d'affaires de
chaque rubrique => "Livré" verticalement ; "Rubrique" verticalement ;
"Net" en données.
Voici la macro :
Set MonTCD1 = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase,
SourceData:=[stats!A1:B2]).CreatePivotTable(TableDestination:=Sheets("onglet1").Cells(3,
1), TableName:="Tableau croisé dynamique",
DefaultVersion:=xlPivotTableVersion10)
With MonTCD1
.SourceData = [stats!A1].CurrentRegion.Address(, , xlR1C1, True)
.AddFields RowFields:="Livré"
With .PivotFields("Net"): .Orientation = xlDataField: .Position = 1:
.Function = xlSum: End With
With .PivotFields("Rubrique"): .Orientation = xlColumnField: .Position
= 1: End With
End With
Le problème est le suivant : Je ne souhaiterait prendre en compte que 16
rubriques (nommons-les "Rubrique 1", "Rubrique 2", ...., "Rubrique16"). Or
au moins 18 peuvent se retrouver dans le fichier. Est-il possible dans le
TCD que l'on ne retrouve toujours QUE les 16 rubriques souhaitées ? Et si
oui, comment retranscrire cela dans VB ?
Je précise le fond du problème : ma macro lance ensuite de nombreux
calculs à partir du TCD. Ces calcules fonctionnent avec un TCD comptant 16
rubriques. Or je me suis aperçu que certaines rubriques anecdotiques
pouvaient apparaître dans les fichiers que je traitais. Forcément , la
macro ne fonctionne alors plus. Et je me vois mal réécrire toute la macro
juste pour une histoire de rubriques futiles qui se baladent de temps en
temps dans mes fichiers.
Merci beaucoup d'avance pour vos solutions !!
Slts
Jiffey
Bonjour à vous !
J'ai une macro toute simple qui crée un TCD :
fichier de base = fichier contenant différentes colonnes : N° de compte
(appelé "Livré") ; article commandé ; rubrique de l'article ; quantité
commandée ; chiffre d'affaires (appelé "Net")
TCD obtenu = consolider pour chaque N° de compte le chiffre d'affaires de
chaque rubrique => "Livré" verticalement ; "Rubrique" verticalement ;
"Net" en données.
Voici la macro :
Set MonTCD1 = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase,
SourceData:=[stats!A1:B2]).CreatePivotTable(TableDestination:=Sheets("onglet1").Cells(3,
1), TableName:="Tableau croisé dynamique",
DefaultVersion:=xlPivotTableVersion10)
With MonTCD1
.SourceData = [stats!A1].CurrentRegion.Address(, , xlR1C1, True)
.AddFields RowFields:="Livré"
With .PivotFields("Net"): .Orientation = xlDataField: .Position = 1:
.Function = xlSum: End With
With .PivotFields("Rubrique"): .Orientation = xlColumnField: .Position
= 1: End With
End With
Le problème est le suivant : Je ne souhaiterait prendre en compte que 16
rubriques (nommons-les "Rubrique 1", "Rubrique 2", ...., "Rubrique16"). Or
au moins 18 peuvent se retrouver dans le fichier. Est-il possible dans le
TCD que l'on ne retrouve toujours QUE les 16 rubriques souhaitées ? Et si
oui, comment retranscrire cela dans VB ?
Je précise le fond du problème : ma macro lance ensuite de nombreux
calculs à partir du TCD. Ces calcules fonctionnent avec un TCD comptant 16
rubriques. Or je me suis aperçu que certaines rubriques anecdotiques
pouvaient apparaître dans les fichiers que je traitais. Forcément , la
macro ne fonctionne alors plus. Et je me vois mal réécrire toute la macro
juste pour une histoire de rubriques futiles qui se baladent de temps en
temps dans mes fichiers.
Merci beaucoup d'avance pour vos solutions !!
Slts
Jiffey
Bonjour à vous !
J'ai une macro toute simple qui crée un TCD :
fichier de base = fichier contenant différentes colonnes : N° de compte
(appelé "Livré") ; article commandé ; rubrique de l'article ; quantité
commandée ; chiffre d'affaires (appelé "Net")
TCD obtenu = consolider pour chaque N° de compte le chiffre d'affaires de
chaque rubrique => "Livré" verticalement ; "Rubrique" verticalement ;
"Net" en données.
Voici la macro :
Set MonTCD1 = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase,
SourceData:=[stats!A1:B2]).CreatePivotTable(TableDestination:=Sheets("onglet1").Cells(3,
1), TableName:="Tableau croisé dynamique",
DefaultVersion:=xlPivotTableVersion10)
With MonTCD1
.SourceData = [stats!A1].CurrentRegion.Address(, , xlR1C1, True)
.AddFields RowFields:="Livré"
With .PivotFields("Net"): .Orientation = xlDataField: .Position = 1:
.Function = xlSum: End With
With .PivotFields("Rubrique"): .Orientation = xlColumnField: .Position
= 1: End With
End With
Le problème est le suivant : Je ne souhaiterait prendre en compte que 16
rubriques (nommons-les "Rubrique 1", "Rubrique 2", ...., "Rubrique16"). Or
au moins 18 peuvent se retrouver dans le fichier. Est-il possible dans le
TCD que l'on ne retrouve toujours QUE les 16 rubriques souhaitées ? Et si
oui, comment retranscrire cela dans VB ?
Je précise le fond du problème : ma macro lance ensuite de nombreux
calculs à partir du TCD. Ces calcules fonctionnent avec un TCD comptant 16
rubriques. Or je me suis aperçu que certaines rubriques anecdotiques
pouvaient apparaître dans les fichiers que je traitais. Forcément , la
macro ne fonctionne alors plus. Et je me vois mal réécrire toute la macro
juste pour une histoire de rubriques futiles qui se baladent de temps en
temps dans mes fichiers.
Merci beaucoup d'avance pour vos solutions !!
Slts
Jiffey
Re-bonjour,
Bon après qq recherches sur internet, j'ai trouvé qqch et j'ai modifié ma
macro :
Sub test()
Set MonTCD1 = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase,
SourceData:=[stats!A1:B2]).CreatePivotTable(TableDestination:=Sheets("onglet1").Cells(3,
1), TableName:="Tableau croisé dynamique",
DefaultVersion:=xlPivotTableVersion10)
With MonTCD1
.SourceData = [stats!A1].CurrentRegion.Address(, , xlR1C1, True)
.AddFields RowFields:="Livré"
With .PivotFields("Net"): .Orientation = xlDataField: .Position = 1:
.Function = xlSum: End With
With .PivotFields("Rubrique"): .Orientation = xlColumnField: .Position
= 1: End With
With .PivotFields("Rubrique"): .PivotItems("rubrique 17").Visible =
False: End With
End With
End Sub
Le problème, c'est que lorsque la rubrique 17 n'est pas visible la macro
bug. Ce que je souhaiterait c'est que la rubrique 17 soit rendu invisible
uniquement si elle est dans le fichier...
Merci pour vos réponses !
A+
JF
"jean-francois LEGRAS" a écrit dans le message de
news:Bonjour à vous !
J'ai une macro toute simple qui crée un TCD :
fichier de base = fichier contenant différentes colonnes : N° de compte
(appelé "Livré") ; article commandé ; rubrique de l'article ; quantité
commandée ; chiffre d'affaires (appelé "Net")
TCD obtenu = consolider pour chaque N° de compte le chiffre d'affaires
de chaque rubrique => "Livré" verticalement ; "Rubrique" verticalement ;
"Net" en données.
Voici la macro :
Set MonTCD1 = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase,
SourceData:=[stats!A1:B2]).CreatePivotTable(TableDestination:=Sheets("onglet1").Cells(3,
1), TableName:="Tableau croisé dynamique",
DefaultVersion:=xlPivotTableVersion10)
With MonTCD1
.SourceData = [stats!A1].CurrentRegion.Address(, , xlR1C1, True)
.AddFields RowFields:="Livré"
With .PivotFields("Net"): .Orientation = xlDataField: .Position = 1:
.Function = xlSum: End With
With .PivotFields("Rubrique"): .Orientation = xlColumnField: .Position
= 1: End With
End With
Le problème est le suivant : Je ne souhaiterait prendre en compte que 16
rubriques (nommons-les "Rubrique 1", "Rubrique 2", ...., "Rubrique16").
Or au moins 18 peuvent se retrouver dans le fichier. Est-il possible dans
le TCD que l'on ne retrouve toujours QUE les 16 rubriques souhaitées ? Et
si oui, comment retranscrire cela dans VB ?
Je précise le fond du problème : ma macro lance ensuite de nombreux
calculs à partir du TCD. Ces calcules fonctionnent avec un TCD comptant
16 rubriques. Or je me suis aperçu que certaines rubriques anecdotiques
pouvaient apparaître dans les fichiers que je traitais. Forcément , la
macro ne fonctionne alors plus. Et je me vois mal réécrire toute la macro
juste pour une histoire de rubriques futiles qui se baladent de temps en
temps dans mes fichiers.
Merci beaucoup d'avance pour vos solutions !!
Slts
Jiffey
Re-bonjour,
Bon après qq recherches sur internet, j'ai trouvé qqch et j'ai modifié ma
macro :
Sub test()
Set MonTCD1 = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase,
SourceData:=[stats!A1:B2]).CreatePivotTable(TableDestination:=Sheets("onglet1").Cells(3,
1), TableName:="Tableau croisé dynamique",
DefaultVersion:=xlPivotTableVersion10)
With MonTCD1
.SourceData = [stats!A1].CurrentRegion.Address(, , xlR1C1, True)
.AddFields RowFields:="Livré"
With .PivotFields("Net"): .Orientation = xlDataField: .Position = 1:
.Function = xlSum: End With
With .PivotFields("Rubrique"): .Orientation = xlColumnField: .Position
= 1: End With
With .PivotFields("Rubrique"): .PivotItems("rubrique 17").Visible =
False: End With
End With
End Sub
Le problème, c'est que lorsque la rubrique 17 n'est pas visible la macro
bug. Ce que je souhaiterait c'est que la rubrique 17 soit rendu invisible
uniquement si elle est dans le fichier...
Merci pour vos réponses !
A+
JF
"jean-francois LEGRAS" <jflegras@gmail.com> a écrit dans le message de
news: O62SBf3tJHA.3928@TK2MSFTNGP03.phx.gbl...
Bonjour à vous !
J'ai une macro toute simple qui crée un TCD :
fichier de base = fichier contenant différentes colonnes : N° de compte
(appelé "Livré") ; article commandé ; rubrique de l'article ; quantité
commandée ; chiffre d'affaires (appelé "Net")
TCD obtenu = consolider pour chaque N° de compte le chiffre d'affaires
de chaque rubrique => "Livré" verticalement ; "Rubrique" verticalement ;
"Net" en données.
Voici la macro :
Set MonTCD1 = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase,
SourceData:=[stats!A1:B2]).CreatePivotTable(TableDestination:=Sheets("onglet1").Cells(3,
1), TableName:="Tableau croisé dynamique",
DefaultVersion:=xlPivotTableVersion10)
With MonTCD1
.SourceData = [stats!A1].CurrentRegion.Address(, , xlR1C1, True)
.AddFields RowFields:="Livré"
With .PivotFields("Net"): .Orientation = xlDataField: .Position = 1:
.Function = xlSum: End With
With .PivotFields("Rubrique"): .Orientation = xlColumnField: .Position
= 1: End With
End With
Le problème est le suivant : Je ne souhaiterait prendre en compte que 16
rubriques (nommons-les "Rubrique 1", "Rubrique 2", ...., "Rubrique16").
Or au moins 18 peuvent se retrouver dans le fichier. Est-il possible dans
le TCD que l'on ne retrouve toujours QUE les 16 rubriques souhaitées ? Et
si oui, comment retranscrire cela dans VB ?
Je précise le fond du problème : ma macro lance ensuite de nombreux
calculs à partir du TCD. Ces calcules fonctionnent avec un TCD comptant
16 rubriques. Or je me suis aperçu que certaines rubriques anecdotiques
pouvaient apparaître dans les fichiers que je traitais. Forcément , la
macro ne fonctionne alors plus. Et je me vois mal réécrire toute la macro
juste pour une histoire de rubriques futiles qui se baladent de temps en
temps dans mes fichiers.
Merci beaucoup d'avance pour vos solutions !!
Slts
Jiffey
Re-bonjour,
Bon après qq recherches sur internet, j'ai trouvé qqch et j'ai modifié ma
macro :
Sub test()
Set MonTCD1 = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase,
SourceData:=[stats!A1:B2]).CreatePivotTable(TableDestination:=Sheets("onglet1").Cells(3,
1), TableName:="Tableau croisé dynamique",
DefaultVersion:=xlPivotTableVersion10)
With MonTCD1
.SourceData = [stats!A1].CurrentRegion.Address(, , xlR1C1, True)
.AddFields RowFields:="Livré"
With .PivotFields("Net"): .Orientation = xlDataField: .Position = 1:
.Function = xlSum: End With
With .PivotFields("Rubrique"): .Orientation = xlColumnField: .Position
= 1: End With
With .PivotFields("Rubrique"): .PivotItems("rubrique 17").Visible =
False: End With
End With
End Sub
Le problème, c'est que lorsque la rubrique 17 n'est pas visible la macro
bug. Ce que je souhaiterait c'est que la rubrique 17 soit rendu invisible
uniquement si elle est dans le fichier...
Merci pour vos réponses !
A+
JF
"jean-francois LEGRAS" a écrit dans le message de
news:Bonjour à vous !
J'ai une macro toute simple qui crée un TCD :
fichier de base = fichier contenant différentes colonnes : N° de compte
(appelé "Livré") ; article commandé ; rubrique de l'article ; quantité
commandée ; chiffre d'affaires (appelé "Net")
TCD obtenu = consolider pour chaque N° de compte le chiffre d'affaires
de chaque rubrique => "Livré" verticalement ; "Rubrique" verticalement ;
"Net" en données.
Voici la macro :
Set MonTCD1 = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase,
SourceData:=[stats!A1:B2]).CreatePivotTable(TableDestination:=Sheets("onglet1").Cells(3,
1), TableName:="Tableau croisé dynamique",
DefaultVersion:=xlPivotTableVersion10)
With MonTCD1
.SourceData = [stats!A1].CurrentRegion.Address(, , xlR1C1, True)
.AddFields RowFields:="Livré"
With .PivotFields("Net"): .Orientation = xlDataField: .Position = 1:
.Function = xlSum: End With
With .PivotFields("Rubrique"): .Orientation = xlColumnField: .Position
= 1: End With
End With
Le problème est le suivant : Je ne souhaiterait prendre en compte que 16
rubriques (nommons-les "Rubrique 1", "Rubrique 2", ...., "Rubrique16").
Or au moins 18 peuvent se retrouver dans le fichier. Est-il possible dans
le TCD que l'on ne retrouve toujours QUE les 16 rubriques souhaitées ? Et
si oui, comment retranscrire cela dans VB ?
Je précise le fond du problème : ma macro lance ensuite de nombreux
calculs à partir du TCD. Ces calcules fonctionnent avec un TCD comptant
16 rubriques. Or je me suis aperçu que certaines rubriques anecdotiques
pouvaient apparaître dans les fichiers que je traitais. Forcément , la
macro ne fonctionne alors plus. Et je me vois mal réécrire toute la macro
juste pour une histoire de rubriques futiles qui se baladent de temps en
temps dans mes fichiers.
Merci beaucoup d'avance pour vos solutions !!
Slts
Jiffey
Bonjour Jean-François,
Si tu désires utiliser seulement les 16 premières rubriques
dans ton tableau croisé dynamique et que tu as une rubrique
par colonne, pourquoi ne pas limiter ta source de données
aux 16 premières colonnes ?
'-------------------------------------------------------
Dim Pt as Pivottable, Adr as String, Adr1 As String
'Définir où sera créé le pivottable
With Worksheets("Feuil1")
Adr1 = .Name & "!" & .Range("A1").Address
End With
With Worksheets("stats")
'Définir où sont les données pour le pivotcache
Adr = .Name & "!" & .Range("A1:P" & _
.Range("A65536").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
'Reste du code
end with
'-------------------------------------------------------
"jean-francois LEGRAS" a écrit dans le message de
groupe de
discussion :
Bonjour à vous !
J'ai une macro toute simple qui crée un TCD :
fichier de base = fichier contenant différentes colonnes : N° de compte
(appelé "Livré") ; article commandé ; rubrique de l'article ; quantité
commandée ; chiffre d'affaires (appelé "Net")
TCD obtenu = consolider pour chaque N° de compte le chiffre d'affaires de
chaque rubrique => "Livré" verticalement ; "Rubrique" verticalement ;
"Net"
en données.
Voici la macro :
Set MonTCD1 = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase,
SourceData:=[stats!A1:B2]).CreatePivotTable(TableDestination:=Sheets("onglet1").Cells(3,
1), TableName:="Tableau croisé dynamique",
DefaultVersion:=xlPivotTableVersion10)
With MonTCD1
.SourceData = [stats!A1].CurrentRegion.Address(, , xlR1C1, True)
.AddFields RowFields:="Livré"
With .PivotFields("Net"): .Orientation = xlDataField: .Position = 1:
.Function = xlSum: End With
With .PivotFields("Rubrique"): .Orientation = xlColumnField: .Position
> 1: End With
End With
Le problème est le suivant : Je ne souhaiterait prendre en compte que 16
rubriques (nommons-les "Rubrique 1", "Rubrique 2", ...., "Rubrique16"). Or
au moins 18 peuvent se retrouver dans le fichier. Est-il possible dans le
TCD que l'on ne retrouve toujours QUE les 16 rubriques souhaitées ? Et si
oui, comment retranscrire cela dans VB ?
Je précise le fond du problème : ma macro lance ensuite de nombreux
calculs
à partir du TCD. Ces calcules fonctionnent avec un TCD comptant 16
rubriques. Or je me suis aperçu que certaines rubriques anecdotiques
pouvaient apparaître dans les fichiers que je traitais. Forcément , la
macro
ne fonctionne alors plus. Et je me vois mal réécrire toute la macro juste
pour une histoire de rubriques futiles qui se baladent de temps en temps
dans mes fichiers.
Merci beaucoup d'avance pour vos solutions !!
Slts
Jiffey
Bonjour Jean-François,
Si tu désires utiliser seulement les 16 premières rubriques
dans ton tableau croisé dynamique et que tu as une rubrique
par colonne, pourquoi ne pas limiter ta source de données
aux 16 premières colonnes ?
'-------------------------------------------------------
Dim Pt as Pivottable, Adr as String, Adr1 As String
'Définir où sera créé le pivottable
With Worksheets("Feuil1")
Adr1 = .Name & "!" & .Range("A1").Address
End With
With Worksheets("stats")
'Définir où sont les données pour le pivotcache
Adr = .Name & "!" & .Range("A1:P" & _
.Range("A65536").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
'Reste du code
end with
'-------------------------------------------------------
"jean-francois LEGRAS" <jflegras@gmail.com> a écrit dans le message de
groupe de
discussion : O62SBf3tJHA.3928@TK2MSFTNGP03.phx.gbl...
Bonjour à vous !
J'ai une macro toute simple qui crée un TCD :
fichier de base = fichier contenant différentes colonnes : N° de compte
(appelé "Livré") ; article commandé ; rubrique de l'article ; quantité
commandée ; chiffre d'affaires (appelé "Net")
TCD obtenu = consolider pour chaque N° de compte le chiffre d'affaires de
chaque rubrique => "Livré" verticalement ; "Rubrique" verticalement ;
"Net"
en données.
Voici la macro :
Set MonTCD1 = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase,
SourceData:=[stats!A1:B2]).CreatePivotTable(TableDestination:=Sheets("onglet1").Cells(3,
1), TableName:="Tableau croisé dynamique",
DefaultVersion:=xlPivotTableVersion10)
With MonTCD1
.SourceData = [stats!A1].CurrentRegion.Address(, , xlR1C1, True)
.AddFields RowFields:="Livré"
With .PivotFields("Net"): .Orientation = xlDataField: .Position = 1:
.Function = xlSum: End With
With .PivotFields("Rubrique"): .Orientation = xlColumnField: .Position
> 1: End With
End With
Le problème est le suivant : Je ne souhaiterait prendre en compte que 16
rubriques (nommons-les "Rubrique 1", "Rubrique 2", ...., "Rubrique16"). Or
au moins 18 peuvent se retrouver dans le fichier. Est-il possible dans le
TCD que l'on ne retrouve toujours QUE les 16 rubriques souhaitées ? Et si
oui, comment retranscrire cela dans VB ?
Je précise le fond du problème : ma macro lance ensuite de nombreux
calculs
à partir du TCD. Ces calcules fonctionnent avec un TCD comptant 16
rubriques. Or je me suis aperçu que certaines rubriques anecdotiques
pouvaient apparaître dans les fichiers que je traitais. Forcément , la
macro
ne fonctionne alors plus. Et je me vois mal réécrire toute la macro juste
pour une histoire de rubriques futiles qui se baladent de temps en temps
dans mes fichiers.
Merci beaucoup d'avance pour vos solutions !!
Slts
Jiffey
Bonjour Jean-François,
Si tu désires utiliser seulement les 16 premières rubriques
dans ton tableau croisé dynamique et que tu as une rubrique
par colonne, pourquoi ne pas limiter ta source de données
aux 16 premières colonnes ?
'-------------------------------------------------------
Dim Pt as Pivottable, Adr as String, Adr1 As String
'Définir où sera créé le pivottable
With Worksheets("Feuil1")
Adr1 = .Name & "!" & .Range("A1").Address
End With
With Worksheets("stats")
'Définir où sont les données pour le pivotcache
Adr = .Name & "!" & .Range("A1:P" & _
.Range("A65536").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
'Reste du code
end with
'-------------------------------------------------------
"jean-francois LEGRAS" a écrit dans le message de
groupe de
discussion :
Bonjour à vous !
J'ai une macro toute simple qui crée un TCD :
fichier de base = fichier contenant différentes colonnes : N° de compte
(appelé "Livré") ; article commandé ; rubrique de l'article ; quantité
commandée ; chiffre d'affaires (appelé "Net")
TCD obtenu = consolider pour chaque N° de compte le chiffre d'affaires de
chaque rubrique => "Livré" verticalement ; "Rubrique" verticalement ;
"Net"
en données.
Voici la macro :
Set MonTCD1 = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase,
SourceData:=[stats!A1:B2]).CreatePivotTable(TableDestination:=Sheets("onglet1").Cells(3,
1), TableName:="Tableau croisé dynamique",
DefaultVersion:=xlPivotTableVersion10)
With MonTCD1
.SourceData = [stats!A1].CurrentRegion.Address(, , xlR1C1, True)
.AddFields RowFields:="Livré"
With .PivotFields("Net"): .Orientation = xlDataField: .Position = 1:
.Function = xlSum: End With
With .PivotFields("Rubrique"): .Orientation = xlColumnField: .Position
> 1: End With
End With
Le problème est le suivant : Je ne souhaiterait prendre en compte que 16
rubriques (nommons-les "Rubrique 1", "Rubrique 2", ...., "Rubrique16"). Or
au moins 18 peuvent se retrouver dans le fichier. Est-il possible dans le
TCD que l'on ne retrouve toujours QUE les 16 rubriques souhaitées ? Et si
oui, comment retranscrire cela dans VB ?
Je précise le fond du problème : ma macro lance ensuite de nombreux
calculs
à partir du TCD. Ces calcules fonctionnent avec un TCD comptant 16
rubriques. Or je me suis aperçu que certaines rubriques anecdotiques
pouvaient apparaître dans les fichiers que je traitais. Forcément , la
macro
ne fonctionne alors plus. Et je me vois mal réécrire toute la macro juste
pour une histoire de rubriques futiles qui se baladent de temps en temps
dans mes fichiers.
Merci beaucoup d'avance pour vos solutions !!
Slts
Jiffey
Bonjour Jean-François,
Si tu désires utiliser seulement les 16 premières rubriques
dans ton tableau croisé dynamique et que tu as une rubrique
par colonne, pourquoi ne pas limiter ta source de données
aux 16 premières colonnes ?
'-------------------------------------------------------
Dim Pt as Pivottable, Adr as String, Adr1 As String
'Définir où sera créé le pivottable
With Worksheets("Feuil1")
Adr1 = .Name & "!" & .Range("A1").Address
End With
With Worksheets("stats")
'Définir où sont les données pour le pivotcache
Adr = .Name & "!" & .Range("A1:P" & _
.Range("A65536").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
'Reste du code
end with
'-------------------------------------------------------
"jean-francois LEGRAS" a écrit dans le message de
groupe de
discussion :
Bonjour à vous !
J'ai une macro toute simple qui crée un TCD :
fichier de base = fichier contenant différentes colonnes : N° de compte
(appelé "Livré") ; article commandé ; rubrique de l'article ; quantité
commandée ; chiffre d'affaires (appelé "Net")
TCD obtenu = consolider pour chaque N° de compte le chiffre d'affaires de
chaque rubrique => "Livré" verticalement ; "Rubrique" verticalement ;
"Net"
en données.
Voici la macro :
Set MonTCD1 = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase,
SourceData:=[stats!A1:B2]).CreatePivotTable(TableDestination:=Sheets("onglet1").Cells(3,
1), TableName:="Tableau croisé dynamique",
DefaultVersion:=xlPivotTableVersion10)
With MonTCD1
.SourceData = [stats!A1].CurrentRegion.Address(, , xlR1C1, True)
.AddFields RowFields:="Livré"
With .PivotFields("Net"): .Orientation = xlDataField: .Position = 1:
.Function = xlSum: End With
With .PivotFields("Rubrique"): .Orientation = xlColumnField: .Position
> 1: End With
End With
Le problème est le suivant : Je ne souhaiterait prendre en compte que 16
rubriques (nommons-les "Rubrique 1", "Rubrique 2", ...., "Rubrique16"). Or
au moins 18 peuvent se retrouver dans le fichier. Est-il possible dans le
TCD que l'on ne retrouve toujours QUE les 16 rubriques souhaitées ? Et si
oui, comment retranscrire cela dans VB ?
Je précise le fond du problème : ma macro lance ensuite de nombreux
calculs
à partir du TCD. Ces calcules fonctionnent avec un TCD comptant 16
rubriques. Or je me suis aperçu que certaines rubriques anecdotiques
pouvaient apparaître dans les fichiers que je traitais. Forcément , la
macro
ne fonctionne alors plus. Et je me vois mal réécrire toute la macro juste
pour une histoire de rubriques futiles qui se baladent de temps en temps
dans mes fichiers.
Merci beaucoup d'avance pour vos solutions !!
Slts
Jiffey
Bonjour Jean-François,
Si tu désires utiliser seulement les 16 premières rubriques
dans ton tableau croisé dynamique et que tu as une rubrique
par colonne, pourquoi ne pas limiter ta source de données
aux 16 premières colonnes ?
'-------------------------------------------------------
Dim Pt as Pivottable, Adr as String, Adr1 As String
'Définir où sera créé le pivottable
With Worksheets("Feuil1")
Adr1 = .Name & "!" & .Range("A1").Address
End With
With Worksheets("stats")
'Définir où sont les données pour le pivotcache
Adr = .Name & "!" & .Range("A1:P" & _
.Range("A65536").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
'Reste du code
end with
'-------------------------------------------------------
"jean-francois LEGRAS" <jflegras@gmail.com> a écrit dans le message de
groupe de
discussion : O62SBf3tJHA.3928@TK2MSFTNGP03.phx.gbl...
Bonjour à vous !
J'ai une macro toute simple qui crée un TCD :
fichier de base = fichier contenant différentes colonnes : N° de compte
(appelé "Livré") ; article commandé ; rubrique de l'article ; quantité
commandée ; chiffre d'affaires (appelé "Net")
TCD obtenu = consolider pour chaque N° de compte le chiffre d'affaires de
chaque rubrique => "Livré" verticalement ; "Rubrique" verticalement ;
"Net"
en données.
Voici la macro :
Set MonTCD1 = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase,
SourceData:=[stats!A1:B2]).CreatePivotTable(TableDestination:=Sheets("onglet1").Cells(3,
1), TableName:="Tableau croisé dynamique",
DefaultVersion:=xlPivotTableVersion10)
With MonTCD1
.SourceData = [stats!A1].CurrentRegion.Address(, , xlR1C1, True)
.AddFields RowFields:="Livré"
With .PivotFields("Net"): .Orientation = xlDataField: .Position = 1:
.Function = xlSum: End With
With .PivotFields("Rubrique"): .Orientation = xlColumnField: .Position
> 1: End With
End With
Le problème est le suivant : Je ne souhaiterait prendre en compte que 16
rubriques (nommons-les "Rubrique 1", "Rubrique 2", ...., "Rubrique16"). Or
au moins 18 peuvent se retrouver dans le fichier. Est-il possible dans le
TCD que l'on ne retrouve toujours QUE les 16 rubriques souhaitées ? Et si
oui, comment retranscrire cela dans VB ?
Je précise le fond du problème : ma macro lance ensuite de nombreux
calculs
à partir du TCD. Ces calcules fonctionnent avec un TCD comptant 16
rubriques. Or je me suis aperçu que certaines rubriques anecdotiques
pouvaient apparaître dans les fichiers que je traitais. Forcément , la
macro
ne fonctionne alors plus. Et je me vois mal réécrire toute la macro juste
pour une histoire de rubriques futiles qui se baladent de temps en temps
dans mes fichiers.
Merci beaucoup d'avance pour vos solutions !!
Slts
Jiffey
Bonjour Jean-François,
Si tu désires utiliser seulement les 16 premières rubriques
dans ton tableau croisé dynamique et que tu as une rubrique
par colonne, pourquoi ne pas limiter ta source de données
aux 16 premières colonnes ?
'-------------------------------------------------------
Dim Pt as Pivottable, Adr as String, Adr1 As String
'Définir où sera créé le pivottable
With Worksheets("Feuil1")
Adr1 = .Name & "!" & .Range("A1").Address
End With
With Worksheets("stats")
'Définir où sont les données pour le pivotcache
Adr = .Name & "!" & .Range("A1:P" & _
.Range("A65536").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
'Reste du code
end with
'-------------------------------------------------------
"jean-francois LEGRAS" a écrit dans le message de
groupe de
discussion :
Bonjour à vous !
J'ai une macro toute simple qui crée un TCD :
fichier de base = fichier contenant différentes colonnes : N° de compte
(appelé "Livré") ; article commandé ; rubrique de l'article ; quantité
commandée ; chiffre d'affaires (appelé "Net")
TCD obtenu = consolider pour chaque N° de compte le chiffre d'affaires de
chaque rubrique => "Livré" verticalement ; "Rubrique" verticalement ;
"Net"
en données.
Voici la macro :
Set MonTCD1 = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase,
SourceData:=[stats!A1:B2]).CreatePivotTable(TableDestination:=Sheets("onglet1").Cells(3,
1), TableName:="Tableau croisé dynamique",
DefaultVersion:=xlPivotTableVersion10)
With MonTCD1
.SourceData = [stats!A1].CurrentRegion.Address(, , xlR1C1, True)
.AddFields RowFields:="Livré"
With .PivotFields("Net"): .Orientation = xlDataField: .Position = 1:
.Function = xlSum: End With
With .PivotFields("Rubrique"): .Orientation = xlColumnField: .Position
> 1: End With
End With
Le problème est le suivant : Je ne souhaiterait prendre en compte que 16
rubriques (nommons-les "Rubrique 1", "Rubrique 2", ...., "Rubrique16"). Or
au moins 18 peuvent se retrouver dans le fichier. Est-il possible dans le
TCD que l'on ne retrouve toujours QUE les 16 rubriques souhaitées ? Et si
oui, comment retranscrire cela dans VB ?
Je précise le fond du problème : ma macro lance ensuite de nombreux
calculs
à partir du TCD. Ces calcules fonctionnent avec un TCD comptant 16
rubriques. Or je me suis aperçu que certaines rubriques anecdotiques
pouvaient apparaître dans les fichiers que je traitais. Forcément , la
macro
ne fonctionne alors plus. Et je me vois mal réécrire toute la macro juste
pour une histoire de rubriques futiles qui se baladent de temps en temps
dans mes fichiers.
Merci beaucoup d'avance pour vos solutions !!
Slts
Jiffey