Sub TriTotalGénéral5()
Dim PvT As PivotTable
Dim c As Range
Dim idx As Variant
Dim PvT1 As PivotTable
Dim c1 As Range
Dim idx1 As Variant
With ThisWorkbook.Sheets("Bilan Mois")
ActiveSheet.Unprotect "1234"
Set PvT = .PivotTables("Tableau croisé dynamique4")
' Trouver l'index de colonne de Total général
idx = Application.Match("Total général", PvT.ColumnRange.Rows(2), 0)
' Si trouvé
If Not IsError(idx) Then
' Récupérer la cellule correspondante
Set c = PvT.ColumnRange.Cells(idx)
' Puis trier avec comme clef la première cellule de valeur
PvT.DataBodyRange.Sort Key1:=c.Offset(2), Order1:=xlDescending, Type:=xlSortValues
End If
End With
With ThisWorkbook.Sheets("Bilan Mois")
Set PvT1 = .PivotTables("Tableau croisé dynamique11")
' Trouver l'index de colonne de Total général
idx1 = Application.Match("Total général", PvT1.ColumnRange.Rows(2), 0)
' Si trouvé
If Not IsError(idx1) Then
' Récupérer la cellule correspondante
Set c1 = PvT1.ColumnRange.Cells(idx1)
' Puis trier avec comme clef la première cellule de valeur
PvT1.DataBodyRange.Sort Key1:=c1.Offset(2), Order1:=xlDescending, Type:=xlSortValues
End If
End With
ActiveSheet.Protect Password:="1234", DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowUsingPivotTables:=True
End Sub