VBA pour modifier trancheuse sélection actuelle de l'élément sélectionné
Ci-dessous se comporte étrangement.
C'est l'objectif est de laisser l'appareil uniquement avec l'élément spécifié (dans ce cas, "Smith") avec tous les autres noms n'est pas sélectionné.
La plupart du temps, il fonctionne, mais parfois plus d'un élément sera activée.
Quel est le problème avec les ci-dessous et comment puis-je obtenir les comportements?
Sub myRoutine()
unselectAllBut "Slicer_InitialAcc_Surname", "me"
End Sub
Public Sub unselectAllBut(slicerName As String, newSelection As String)
Dim si As Object
For Each si In ActiveWorkbook.SlicerCaches(slicerName).SlicerItems
si.Selected = (si.Caption = newSelection)
Next si
End Sub
Deuxième tentative qui ne fonctionne pas non plus:
Public Sub unselectAllBut(slicerName As String, newSelection As String)
Dim i As Integer
With ActiveWorkbook.SlicerCaches(slicerName)
For i = 1 To .SlicerItems.Count
.SlicerItems(i).Selected = (.SlicerItems(i).Caption = newSelection)
Next i
End With
End Sub
Peut-être que les données sont à l'origine du problème. Il se présente comme suit:
MODIFIER
La suite semble fonctionner. Je sélectionne tous les éléments de la première qui semble être sur-tuer:
Public Sub unselectAllBut(slicerName As String, newSelection As String)
Dim i As Integer
With ActiveWorkbook.SlicerCaches(slicerName)
For i = 1 To .SlicerItems.Count
.SlicerItems(i).Selected = True
Next i
For i = 1 To .SlicerItems.Count
.SlicerItems(i).Selected = (.SlicerItems(i).Caption = newSelection)
Next i
End With
End Sub
Vous devez vous connecter pour publier un commentaire.
Un peu plus rapide: