VBA créer un total par ligne dans TCD

Gardien de phare

XLDnaute Accro
Bonjour,

J'ai un TCD qui contient deux colonnes si toutes les modalités d'un segment sont sélectionnées. Je voudrais que lorsqu’il n'y a qu'une colonne, il n'y ait pas de total par ligne. En Vba, mon code ne fonctionne pas correctement : fort temps de latence, apparemment le code calcule plein de choses avant de rendre la main. J'ai trouvé un palliatif en masquant / affichant la colonne qui contient le total des lignes mais ce n'est pas très esthétique. Qu'est-ce que j'ai loupé ?
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Dim Nb1 As Integer, Nb2 As Integer
Nb1 = 0
Nb2 = 0
With ActiveWorkbook.SlicerCaches("Segment_NATCOAGT")
  For i = 1 To .SlicerItems().Count
  If .SlicerItems(i).HasData Then Nb1 = Nb1 + 1
  If .SlicerItems(i).Selected Then Nb2 = Nb2 + 1
  Next
End With
With ActiveSheet
  If Nb1 = 1 Or Nb2 = 1 Then
  .Columns("C").EntireColumn.Hidden = True
  ' Ne fonctionne pas correctement (temps de latence)
  ' ActiveSheet.PivotTables("TCD").RowGrand = False
  Else
  .Columns("C").EntireColumn.Hidden = False
  ' Ne fonctionne pas correctement (temps de latence)
  ' ActiveSheet.PivotTables("TCD").RowGrand = True
  End If
End With
Application.ScreenUpdating = True
End Sub

Fichier en PJ et merci...
 

Pièces jointes

  • TCD GdP.xlsm
    61.3 KB · Affichages: 35

Discussions similaires

Réponses
0
Affichages
154

Statistiques des forums

Discussions
312 275
Messages
2 086 709
Membres
103 377
dernier inscrit
fredy45