1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| Dim plage As Range
'Définit la plage de donnée pour créer un tableau
Set plage = Worksheets("Feuil2").Range(Worksheets("Feuil2").Cells(1, 1), Worksheets("Feuil2").Range("E1").End(xlDown).Offset(1, 0))
'Pour les tests, a chaque fois qu'on relance la macro, le tableau crée précedement repasse en plage de donnée
Worksheets("Feuil2").ListObjects("TableauDynamique").Unlist
'Conversion de la plage de donnée en tableau
Worksheets("Feuil2").ListObjects.Add(xlSrcRange, plage, , xlYes).Name = "TableauDynamique"
'Création d'une nouvelle feuille
Sheets.Add.Name = "Rapport"
'Creation du tableau croisé
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:="TableauDynamique", Version:=xlPivotTableVersion14).CreatePivotTable _
TableDestination:="Rapport!R3C1", TableName:="Rapport tableau", DefaultVersion:=xlPivotTableVersion14
Sheets("Rapport").Select
Cells(3, 1).Select
With Worksheets("Rapport").PivotTables("Rapport tableau").PivotFields("Nom")
.Orientation = xlPageField
.Position = 1
End With
Worksheets("Rapport").PivotTables("Rapport tableau").AddDataField ActiveSheet.PivotTables("Rapport tableau").PivotFields("Nombre"), "Nombre d'heures", xlCount
With Worksheets("Rapport").PivotTables("Rapport tableau").PivotFields("Texte d'imputation")
.Orientation = xlRowField
.Position = 1
End With
'Création du graphique dynamique
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Range("Rapport!$A$3:$B$10")
'Creation des segments
Range("A3").Select
ActiveWorkbook.SlicerCaches.Add(ActiveSheet.PivotTables("Rapport tableau"), "Nom").Slicers.Add ActiveSheet, , "Nom", "Nom", 79.5, 415.5, 144, 198.75
ActiveWorkbook.SlicerCaches.Add(ActiveSheet.PivotTables("Rapport tableau"), "Texte d'imputation").Slicers.Add ActiveSheet, , "Texte d'imputation", "Texte d'imputation", 117, 453, 144, 198.75
ActiveSheet.Shapes.Range(Array("Texte d'imputation")).Select |
Partager