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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
Sub Update_Pivot()
Dim lrow As Long
Dim xlrow As String
On Error Resume Next
Sheets("External").Select 'Les données de base se trouvent dans ce sheet
lrow = ActiveSheet.UsedRange.Rows.Count 'récupère le nombre de ligne active réelles -> Le PivotTable est basé sur les données complètes.
xlrow = lrow
Sheets("Pivot_Press").Select
Application.DisplayAlerts = False
ActiveWindow.SelectedSheets.Delete
Application.DisplayAlerts = True
'Je Supprime la précédente génération du Pivot Table en supprimant la feuille ou elle se trouve "Pivot_Press"
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"External!R1C1:R" & xlrow & "C11").CreatePivotTable TableDestination:="", TableName:= _
"Pivot_Press"
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
With ActiveSheet.PivotTables("Pivot_Press")
.RowGrand = False
.SmallGrid = False
End With
ActiveSheet.PivotTables("Pivot_Press").PivotFields("LGBI").Subtotals = Array( _
False, False, False, False, False, False, False, False, False, False, False, False)
ActiveSheet.PivotTables("Pivot_Press").AddFields RowFields:=Array("PRESS", _
"ALLOY", "LGBI", "Data"), ColumnFields:="INDATE"
With ActiveSheet.PivotTables("Pivot_Press").PivotFields("BEFORE_PC")
.Orientation = xlDataField
.Caption = "BEFORE PC"
.Position = 1
.NumberFormat = "#.##0"
End With
With ActiveSheet.PivotTables("Pivot_Press").PivotFields("AFTER_PC")
.Orientation = xlDataField
.Caption = "AFTER PC"
.Position = 2
.NumberFormat = "#.##0"
End With
With ActiveSheet.PivotTables("Pivot_Press").PivotFields("EVOL_PC")
.Orientation = xlDataField
.Caption = "EVOL PC"
.Position = 3
.NumberFormat = "#.##0"
End With
With ActiveSheet.PivotTables("Pivot_Press").PivotFields("BEFORE_TO")
.Orientation = xlDataField
.Caption = "BEFORE TO"
.Position = 4
.NumberFormat = "#.##0,0"
End With
With ActiveSheet.PivotTables("Pivot_Press").PivotFields("AFTER_TO")
.Orientation = xlDataField
.Caption = "AFTER TO"
.Position = 5
.NumberFormat = "#.##0,0"
End With
With ActiveSheet.PivotTables("Pivot_Press").PivotFields("EVOL_TO")
.Orientation = xlDataField
.Caption = "EVOL TO"
.NumberFormat = "#.##0,0"
End With
ActiveSheet.PivotTables("Pivot_Press").PivotSelect "", xlDataAndLabel
ActiveSheet.PivotTables("Pivot_Press").Format xlTable7
With ActiveSheet.PivotTables("Pivot_Press").PivotFields("PRESS")
.PivotItems("").Visible = False
.PivotItems("1").Visible = False
End With
ActiveSheet.PivotTables("Pivot_Press").PivotFields("ALLOY").Subtotals = Array( _
False, False, False, False, False, False, False, False, False, False, False, False)
Range("C2").Select
ActiveSheet.Name = "Pivot_Press" '
'Super important : Renomme le sheet avec le pivot créé sinon au prochain passage le Delete du Sheet va foirer
Application.CommandBars("PivotTable").Visible = True
ActiveSheet.PivotTables("Pivot_Press").PivotSelect "", xlDataOnly
Selection.NumberFormat = "#,##0"
Application.CommandBars("PivotTable").Visible = False
Range("C2").Select
End Sub |
Partager