Ir ao conteúdo
  • Cadastre-se

Excel VBA - Como criar Login e desabilitar funções de Copiar/Recortar e Salvar como


Posts recomendados

Oi Pessoal...

 

Tenho pesquisado e venho aprendendo bastante sobre o VBA! até consegui montar um código para que possa bloquear o Copiar, colar e recortar e o "Salvar como" também!

E tenho aprendido também a criar um login e senha para acesso a Pasta de trabalho do excel para cada usuário! mas gostaria de saber agora, como posso conciliar a um usuário esse código mencionados acima, e deixar outro usuário como controle total da pasta de trabalho? 

 

Fico grato quem puder ajudar!

Link para o comentário
Compartilhar em outros sites

2 minutos atrás, CasaDoHardware disse:

Faz um if de acordo com o criterio.

 

Se o usuario tiver acesso total você inibe o codigo se for para bloquear você executa

 

if textboxusuario = usuario bloqueado then

 

codigo de bloqueio

 

end if

 

Sim! de certa forma eu entendi sua colocação... mas neste caso, o que ocorre em específico é o seguinte...

 

O código abaixo que vou postar, eu o utilizo para bloquear em algumas planilhas dentro da Pasta de Trabalho as funções para que ninguém possa roubar dados da planilha, mas em algumas planilhas!!!! outras pode ser copiadas por completo... mas tem o dono da empresa que eu poderia fazer um usuário e deixa-lo com permissão para tudo em todas as planilhas! só não sei como eu poderia fazer isso! juntando com as ideias que encontramos no youtube com varias pessoas ensinando a criar login e senha, não sei onde eu faria essa junção!...

 

 

 

 

 

 

 

Em EstaPasta_de_trabalho, segue o código

 

Private Sub Workbook_Open()

 

On Error Resume Next

Application.ScreenUpdating = False

Worksheets("ordem frente").Visible = True

Worksheets("PERDAS").Visible = True

Worksheets("cadastro de ligas").Visible = True

 

Application.ScreenUpdating = True

End Sub

 

Private Sub Workbook_BeforeClose(Cancel As Boolean)

 

Application.ScreenUpdating = False

Worksheets("ordem frente").Visible = xlVeryHidden

Worksheets("PERDAS").Visible = xlVeryHidden

Worksheets("cadastro de ligas").Visible = xlVeryHidden

Application.ScreenUpdating = True

ThisWorkbook.Save

 

Dim oCtrl As Office.CommandBarControl

 

          For Each oCtrl In Application.CommandBars.FindControls(ID:=21)

              oCtrl.Enabled = True

          Next oCtrl

 

          For Each oCtrl In Application.CommandBars.FindControls(ID:=19)

              oCtrl.Enabled = True

          Next oCtrl

 

          Application.CellDragAndDrop = True

          Application.OnKey "^c"

          Application.OnKey "^v"

          Application.OnKey "^x"

         

Select Case Application.CutCopyMode

    Case Is = xlCopy

        Application.CutCopyMode = True

    Case Is = xlCut

       Application.CutCopyMode = True

End Select

End Sub

 

Private Sub Worksheet_Activate()

 

Dim oCtrl As Office.CommandBarControl

 

          For Each oCtrl In Application.CommandBars.FindControls(ID:=21)

              oCtrl.Enabled = False

          Next oCtrl

 

          For Each oCtrl In Application.CommandBars.FindControls(ID:=19)

              oCtrl.Enabled = True

          Next oCtrl

         

          For Each oCtrl In Application.CommandBars.FindControls(ID:=22)

              oCtrl.Enabled = True

          Next oCtrl

         

          Application.CellDragAndDrop = False

          Application.OnKey "^c"

          Application.OnKey "^v"

          Application.OnKey "^{x}", ""

         

 

 

End Sub

 

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)

Select Case Application.CutCopyMode

    Case Is = xlCopy

        Application.CutCopyMode = False

    Case Is = xlCut

       Application.CutCopyMode = False

End Select

End Sub

 

Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)

Select Case Application.CutCopyMode

    Case Is = xlCopy

        Application.CutCopyMode = False

    Case Is = xlCut

       Application.CutCopyMode = False

End Select

End Sub

 

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

If SaveAsUI = True Then

Cancel = True

MsgBox "A opção Salvar como encontra-se desativada. Utilize a função Salvar para guardar suas alterações"

End If

End Sub

 

 

CODIGO UTILIZADO NAS PLANILHAS DESBLOQUEADAS PARA TUDO....

 

Private Sub Worksheet_Activate()

Dim oCtrl As Office.CommandBarControl

 

          For Each oCtrl In Application.CommandBars.FindControls(ID:=21)

              oCtrl.Enabled = True

          Next oCtrl

 

          For Each oCtrl In Application.CommandBars.FindControls(ID:=19)

              oCtrl.Enabled = True

          Next oCtrl

 

          Application.CellDragAndDrop = True

          Application.OnKey "^c"

          Application.OnKey "^v"

          Application.OnKey "^x"

         

    

 

End Sub

 

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)

Select Case Application.CutCopyMode

    Case Is = xlCopy

        Application.CutCopyMode = True

    

    Case Is = xlCut

       Application.CutCopyMode = True

    

End Select

End Sub

 

Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)

Select Case Application.CutCopyMode

    Case Is = xlCopy

        Application.CutCopyMode = True

     

    Case Is = xlCut

       Application.CutCopyMode = True

      

End Select

End Sub

 

 

E ESTES, SÃO PARA BLOQUEAR EM ALGUMAS PLANILHAS

 

Private Sub Worksheet_Activate()

 

Dim oCtrl As Office.CommandBarControl

 

          For Each oCtrl In Application.CommandBars.FindControls(ID:=21)

              oCtrl.Enabled = False

          Next oCtrl

 

          For Each oCtrl In Application.CommandBars.FindControls(ID:=19)

              oCtrl.Enabled = False

          Next oCtrl

 

          Application.CellDragAndDrop = True

          Application.OnKey "^{c}", ""

          Application.OnKey "^{v}", ""

          Application.OnKey "^{x}", ""

         

 

 

End Sub

 

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)

Select Case Application.CutCopyMode

    Case Is = xlCopy

        Application.CutCopyMode = False

    Case Is = xlCut

       Application.CutCopyMode = False

End Select

End Sub

 

Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)

Select Case Application.CutCopyMode

    Case Is = xlCopy

        Application.CutCopyMode = False

    Case Is = xlCut

       Application.CutCopyMode = False

End Select

End Sub

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...