Permitir selecionar, mas não editar, um gráfico e segmentações de dados em uma planilha Excel protegida

Permitir selecionar, mas não editar, um gráfico e segmentações de dados em uma planilha Excel protegida

Gostaria de compartilhar um arquivo Excel que contém segmentações de dados e gráficos. Quero que os usuários possam usar as segmentações de dados para filtrar e, em seguida, selecionar e copiar os gráficos. Mas quero proteger a planilha e evitar qualquer edição do gráfico e das segmentações de dados.
Pelo que posso ver, as opções são bloquear os gráficos e as segmentações de dados, caso em que eles não podem ser editados quando a planilha está protegida, mas as segmentações de dados são congeladas e o gráfico não pode ser copiado (PrintScreen não é uma opção) . OU, para desbloqueá-los; nesse caso, eles se tornarão utilizáveis, mas editáveis.
Existe uma maneira de contornar isso?

Responder1

Você tem 2 opções. Uma maneira é usar uma planilha habilitada para VBA e adicionar sua própria lógica usando VBA, mas isso exige que sua planilha esteja xlsme o usuário final habilite macros em sua pasta de trabalho - mas dessa forma você obtém melhor controle sobre as ações permitidas do usuário. A segunda maneira é xlsxsem VBA - mas você não pode negar algumas ações ao usuário ali, como excluir as segmentações de dados ou alterar o nome do gráfico.

1) Você pode fazercomo recomendado aqui:

Private Sub Chart1_Click()     
    ActiveSheet.ChartObjects(1).CopyPicture
    MsgBox ("Chart copied to clipboard.  You can now paste this into another application.")        
End Sub

Isso significa que você precisa converter sua pasta de trabalho para xlsm, pasta de trabalho com macros. Em seguida, adicione uma macro para lidar com a ação da área de transferência no clique do gráfico.

2) A melhor maneira, eu acho, seria você deixar o elemento Gráfico desbloqueado na planilha protegida emodifique suas propriedades com uma macro:

Sub macro()
ActiveChart.ProtectData = True
ActiveChart.ProtectFormatting = True
ActiveChart.ProtectSelection = False
End Sub

ou para todos os gráficos em uma planilha:

For Each i In ActiveSheet.ChartObjects
    i.Chart.ProtectSelection = False
    i.Chart.ProtectData = True
    i.Chart.ProtectFormatting = True 
Next i

Dessa forma, você usa macros ao criar a pasta de trabalho, mas a pasta de trabalho em si não contém VBA.

Se você criar uma planilha separada para um gráfico, poderá protegê-la separadamente com uma senha:

Sub macro()
Dim newChart As Chart

Range("C9:C11").Select
Set newChart = ActiveChart

With newChart
.Protect Password:="pwd", DrawingObjects:=True, Contents:=True
.ProtectData = True
.ProtectFormatting = True
.ProtectSelection = False
.ChartObjects(1).Chart.ProtectSelection = False

   'setting other properties
End With

End Sub

Quanto aos slicers, é necessário deixá-los desbloqueados e marcar “Usar relatórios dinâmicos” ao bloquear a planilha.

Responder2

Ao editar, você quer dizer apenas os dados ou estilos subjacentes dos próprios gráficos?

Se você deseja apenas que os dados sejam bloqueados, você pode colocar seus dados na planilha protegida (onde também pode permitir o uso de pivôs, seleção, classificação, etc.) e ter seus gráficos em outra planilha.

Aquieles sugerem usar uma macro que copia um gráfico ao clicar, algo que você pode usar se a planilha com o gráfico também estiver protegida.

Responder3

Tente ativar o modo somente leitura. Acredito que seja um recurso do Excel (separado do Modo de Exibição Protegido), mas posso estar errado.

informação relacionada