Macro Tableau croisé dynam sous excel 2007
mat20008
Messages postés
39
Statut
Membre
-
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Décidemment je n'arrete plus de poser des question concernant VBA que je découvre depuis peu...
Alors voici le soucis du jour:
Je crée un tableau dynamique dans l'onglet "LILLE", j'en ai fait au passage une macro, le soucis est d'utiliser ce code sur les onglets PARIS, MARSEILLE....dans chaque onglet
En essayant le code suivant dans l'onglet PARIS, évidemment ça bloque à cause de "LILLE", j'aimerai savoir ce qu'il faut modifier pour pouvoir utiliser la macro dans les autres onglets PARIS.....
Ca doit pas être très compliqué, mais je suis novice...
Cdmt
Sub TCD()
'
' TCD Macro
'
'
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"LILLE!L1C1:L65536C20", Version:=xlPivotTableVersion10).CreatePivotTable _
TableDestination:="LILLE!L11C22", TableName:="Tableau croisé dynamique4", _
DefaultVersion:=xlPivotTableVersion10
Sheets("LILLE").Select
Cells(11, 22).Select
ActiveWorkbook.ShowPivotTableFieldList = True
With ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields( _
"Commercial")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields( _
"Mois Comptable")
.Orientation = xlRowField
.Position = 2
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields( _
"Montant cde")
.Orientation = xlRowField
.Position = 3
End With
ActiveSheet.PivotTables("Tableau croisé dynamique4").AddDataField ActiveSheet. _
PivotTables("Tableau croisé dynamique4").PivotFields("Montant cde"), _
"Nombre de Montant cde", xlCount
With ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields( _
"Mois Comptable")
.Orientation = xlColumnField
.Position = 1
End With
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 16
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 18
ActiveWindow.ScrollColumn = 19
ActiveWindow.ScrollColumn = 20
ActiveWindow.ScrollColumn = 22
ActiveWorkbook.Save
Range("X16").Select
ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotCache.Refresh
ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields( _
"Mois Comptable").PivotFilters.Add Type:=xlDateThisYear
End Sub
Décidemment je n'arrete plus de poser des question concernant VBA que je découvre depuis peu...
Alors voici le soucis du jour:
Je crée un tableau dynamique dans l'onglet "LILLE", j'en ai fait au passage une macro, le soucis est d'utiliser ce code sur les onglets PARIS, MARSEILLE....dans chaque onglet
En essayant le code suivant dans l'onglet PARIS, évidemment ça bloque à cause de "LILLE", j'aimerai savoir ce qu'il faut modifier pour pouvoir utiliser la macro dans les autres onglets PARIS.....
Ca doit pas être très compliqué, mais je suis novice...
Cdmt
Sub TCD()
'
' TCD Macro
'
'
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"LILLE!L1C1:L65536C20", Version:=xlPivotTableVersion10).CreatePivotTable _
TableDestination:="LILLE!L11C22", TableName:="Tableau croisé dynamique4", _
DefaultVersion:=xlPivotTableVersion10
Sheets("LILLE").Select
Cells(11, 22).Select
ActiveWorkbook.ShowPivotTableFieldList = True
With ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields( _
"Commercial")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields( _
"Mois Comptable")
.Orientation = xlRowField
.Position = 2
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields( _
"Montant cde")
.Orientation = xlRowField
.Position = 3
End With
ActiveSheet.PivotTables("Tableau croisé dynamique4").AddDataField ActiveSheet. _
PivotTables("Tableau croisé dynamique4").PivotFields("Montant cde"), _
"Nombre de Montant cde", xlCount
With ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields( _
"Mois Comptable")
.Orientation = xlColumnField
.Position = 1
End With
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 16
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 18
ActiveWindow.ScrollColumn = 19
ActiveWindow.ScrollColumn = 20
ActiveWindow.ScrollColumn = 22
ActiveWorkbook.Save
Range("X16").Select
ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotCache.Refresh
ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields( _
"Mois Comptable").PivotFilters.Add Type:=xlDateThisYear
End Sub
A voir également:
- Macro Tableau croisé dynam sous excel 2007
- Tableau croisé dynamique - Guide
- Tableau word - Guide
- Trier un tableau excel - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Save as pdf office 2007 - Télécharger - Bureautique
3 réponses
Bonjour,
partout où tu as Lille d'écrit remplace par le nom du classeur actif.
Ex:
"LILLE!L1C1:L65536C20" devient :
activesheet.name & "!L1C1:L65536C20"
(attention aux " ")
eric
partout où tu as Lille d'écrit remplace par le nom du classeur actif.
Ex:
"LILLE!L1C1:L65536C20" devient :
activesheet.name & "!L1C1:L65536C20"
(attention aux " ")
eric
Merci pour ta réponse, j'y suis presque, mais il me mets erreur d'execution 5, voici le code, modifié comme tu me l'as indiqué, la surbrillance se fait au niveau DefaultVersion:=xlPivotTableVersion12, j'comprend rein, c'est du grèque pour moi:)
Sub TCD()
'
' TCD Macro
'
'
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 15
ActiveWindow.ScrollColumn = 16
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 18
Range("W18").Select
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
ActiveSheet.Name & "!L1C1:L1048576C20", Version:=xlPivotTableVersion12).CreatePivotTable _
TableDestination:=ActiveSheet.Name & "!L18C23", TableName:="Tableau croisé dynamique1", _
DefaultVersion:=xlPivotTableVersion12
Sheets(ActiveSheet.Name).Select
Cells(18, 23).Select
ActiveWorkbook.ShowPivotTableFieldList = True
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Commercial")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Mois Comptable")
.Orientation = xlRowField
.Position = 2
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Montant cde")
.Orientation = xlRowField
.Position = 3
End With
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddDataField ActiveSheet. _
PivotTables("Tableau croisé dynamique1").PivotFields("Montant cde"), _
"Nombre de Montant cde", xlCount
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Mois Comptable")
.Orientation = xlColumnField
.Position = 1
End With
ActiveWorkbook.ShowPivotTableFieldList = False
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 15
ActiveWindow.ScrollColumn = 16
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 18
ActiveWindow.ScrollColumn = 20
ActiveWorkbook.ShowPivotTableFieldList = True
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Nombre de Montant cde")
.Caption = "Somme de Montant cde"
.Function = xlSum
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Commercial")
.PivotItems("(vide)").Visible = False
End With
ActiveWorkbook.ShowPivotTableFieldList = False
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Mois Comptable").PivotFilters.Add Type:=xlDateThisYear
End Sub
Sub TCD()
'
' TCD Macro
'
'
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 15
ActiveWindow.ScrollColumn = 16
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 18
Range("W18").Select
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
ActiveSheet.Name & "!L1C1:L1048576C20", Version:=xlPivotTableVersion12).CreatePivotTable _
TableDestination:=ActiveSheet.Name & "!L18C23", TableName:="Tableau croisé dynamique1", _
DefaultVersion:=xlPivotTableVersion12
Sheets(ActiveSheet.Name).Select
Cells(18, 23).Select
ActiveWorkbook.ShowPivotTableFieldList = True
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Commercial")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Mois Comptable")
.Orientation = xlRowField
.Position = 2
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Montant cde")
.Orientation = xlRowField
.Position = 3
End With
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddDataField ActiveSheet. _
PivotTables("Tableau croisé dynamique1").PivotFields("Montant cde"), _
"Nombre de Montant cde", xlCount
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Mois Comptable")
.Orientation = xlColumnField
.Position = 1
End With
ActiveWorkbook.ShowPivotTableFieldList = False
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 15
ActiveWindow.ScrollColumn = 16
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 18
ActiveWindow.ScrollColumn = 20
ActiveWorkbook.ShowPivotTableFieldList = True
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Nombre de Montant cde")
.Caption = "Somme de Montant cde"
.Function = xlSum
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Commercial")
.PivotItems("(vide)").Visible = False
End With
ActiveWorkbook.ShowPivotTableFieldList = False
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
"Mois Comptable").PivotFilters.Add Type:=xlDateThisYear
End Sub