VBA Excel - Proteja-se para que ninguém copie e cole conteúdo nas suas planilhas - To prevent people cutting/copying and pasting when your workbook is open

Inline image 1
Blog Office VBA | Blog Excel | Blog Access |


Geralmente, se não todas as vezes, desejamos que os nossos Relatórios, Dashboards e Aplicações não sejam copiadas, ou tenham os seus conteúdos e layouts alterados por alguém que inadvertidamente cole dados na nossa planilha. 

Há como protegê-las dessas intempéries? Sim! Divirta-se com os códigos abaixo:

Sub DisableCutAndPaste()
  EnableControl 21, False   ' cut
  EnableControl 19, False   ' copy
  EnableControl 22, False   ' paste
  EnableControl 755, False  ' pastespecial
  Application.OnKey "^c", ""
  Application.OnKey "^v", ""
  Application.OnKey "+{DEL}", ""
  Application.OnKey "+{INSERT}", ""
  Application.CellDragAndDrop = False
End Sub

Sub EnableCutAndPaste()
  EnableControl 21, True   ' cut
  EnableControl 19, True   ' copy
  EnableControl 22, True   ' paste
  EnableControl 755, True  ' pastespecial
  Application.OnKey "^c"
  Application.OnKey "^v"
  Application.OnKey "+{DEL}"
  Application.OnKey "+{INSERT}"
  Application.CellDragAndDrop = True
End Sub

Sub EnableControl (Id As Integer, Enabled As Boolean)
  Dim CB As CommandBar
  Dim C As CommandBarControl
  For Each CB In Application.CommandBars
    Set C = CB.FindControl(Id:=Id, recursive:=True)
    If Not C Is Nothing Then C.Enabled = Enabled
  Next
End Sub
Reference:
Bill Manville
Tags: VBA, Excel, cutting, copying, pasting, cut, copy, past

Nenhum comentário:

Postar um comentário

diHITT - Notícias