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:

VBA pour modifier trancheuse sélection actuelle de l'élément sélectionné


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
InformationsquelleAutor whytheq | 2013-12-16