Empecher la suppression des segments (slicer) des TCD
Bonjour,
je cherche par une macro à empêcher la suppression des segments (slicer en anglais) des TCD sur une feuille protégée.
les segment sont des fenêtres qui fonctionne avec les TCD et permettent de filtrer les données.
Ce qui a déjà été testé, c'est de bloquer le clic droit de la souris par le code suivant :
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
End Sub
Malheureusement, cela n'a pas d'effet sur les segment, on peut lorsque l'on survole la fenêtre faire un clic droit et couper ou supprimer le segment.
J'ai trouvé sur un site anglais, sur un forum le même sujet, et quelqu'un semble proposer ce code :
Private Sub Workbook_SheetPivotTableChangeSync(ByVal Sh As Object, ByVal Target As PivotTable)
Dim vSlicerNames() As Variant
Dim i As Long
vSlicerNames = Array("Slicer_Country", "Slicer_State", "Slicer_City")
For i = LBound(vSlicerNames) To UBound(vSlicerNames)
On Error Resume Next
If IsError(ActiveWorkbook.SlicerCaches(vSlicerNames(i)).Name) Then
With Application
.EnableEvents = False
.Undo
If IsError(ActiveWorkbook.SlicerCaches(vSlicerNames(i)).Name) Then
.Repeat
.EnableEvents = True
MsgBox "Slicer: " & vSlicerNames(i) & " not found. " & vbCr _
& "An attempt to undo the last action did not recover the slicer."
Exit For
Else
MsgBox "The last action was undone to recover a deleted slicer"
End If
.EnableEvents = True
End With
End If
Next i
Je n'ai pas réussi à l'adapter à mon exemple de fichier.
Si vous avez une solution.
Sachant que je sais déjà qu'en ce qui concerne les segment, il faut faire dans le cas d'une feuille protégée :
Taille et propriété segment / Disposition/ cocher la case désactiver le redimensionnement.
Propriété / ne pas déplacer avec les cellules, puis décocher cellule verrouillée.
Ensuite, lorsque la feuille est protégé, on peut faire les sélection du segment, ce qui est OK
On ne peut plus déplacer la fenêtre segment, Ce qui est OK
Mais on peut toujours le supprimer ou le couper, ce qui n'est pas OK
Et c'est vraiment ce que je cherche à éviter.
Merci