Notifications
Clear all

Bloquear Uso da Planilha Verificando nome do Usuário

20 Posts
1 Usuários
0 Reactions
5,100 Visualizações
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Olá caros amigos do planilhando,
preciso da ajuda de vcs sobre bloqueio da Planilha.
Atualmente eu ja tenho um codigo. é este:

Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, ByRef nSize As Long) As Long
'Retorna o nome do computador
Private Function lfNomeComputador() As String
Dim stBuff As String * 255, lAPIResult As Long
Dim lBuffLen As Long
lBuffLen = 255
lAPIResult = GetComputerName(stBuff, lBuffLen)
If lBuffLen > 0 Then lfNomeComputador = Left(stBuff, lBuffLen)
End Function
Public Sub lsRetornaNomeComputador()
'Faz as verificações dos computadores para acesso ao programa, caso não estegem na lista não terão acesso.
Dim CompName As String
CompName = lfNomeComputador
If CompName <> "ADM18" And _
CompName <> "ADM16-ORC" And _
CompName <> "ADM08" And _
CompName <> "ADM26" And _
CompName <> "ADM07" And _
CompName <> "wrf" Then
MsgBox "Este computador não tem direito de executar esta aplicação."
' e fecha o programa sozinho caso o computador não tenha acesso.
ActiveWorkbook.Close SaveChanges:=False
Else
MsgBox "OK computador confirmado"
End If
End Sub

A programação funciona perfeitamente, sendo que ela só funciona se o usuário clicar na macro ("BOTÃO"), mais eu gostaria de saber se tem como ela rodar ao abrir a planilha, pq eu não quero que outros usuários possam ver o conteúdo da minha plan?

No Aguardo

Daniela

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 15/09/2011 5:14 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Daniela, para não exibir a tela do aplicativo quandoabrir o arquivo, utilize a rotina anbaixo no Evento Open do workbook :

Private Sub Workbook_Open()

Application.Visible = False

'SuaRotina

Application.Visible = True

End Sub

abraços

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 15/09/2011 5:46 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

dias, insira esse código em Esta_Pasta_de_Trabalho:

Private Sub Workbook_Open()
    Call lsRetornaNomeComputador
End Sub

Qualquer coisa da o grito.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 15/09/2011 5:46 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Nossa muito obrigada, funcionou perfeitamente as ajudas.

Agora vcs poderiam me ajudar no seguinte.

Tenha uma planilha que só "imprime, vizualiza impressão, salva e salva como" com senha, uso a rotina abaixo:

'Programação para informar que a planilha está protegida)
Private Sub Worksheet_BeforeRightClick(ByVal Target As Excel.Range, Cancel As Boolean)
MsgBox "Planilha protegida!"
Cancel = True
End Sub

'Programação para bloquear impressão da planilha, apenas com senha)
Private Sub Workbook_beforePrint(Cancel As Boolean)
Const Senha As String = "123"
Dim SenhaDigitada As String
SenhaDigitada = InputBox("Informe a Senha para Imprimir:", "Imprimir Planilha", "", 400, 300)
If Not SenhaDigitada = Senha Then
MsgBox "SENHA INCORRETA. Impressão Não Realizada.", vbInformation, "Mensagem"
Cancel = True
End If
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim WS As Workbook
Dim Resp As VbMsgBoxResult
Set WS = ThisWorkbook
If WS.Saved = False Then
WS.Saved = True
Resp = MsgBox("Gostaria de salvar as alterações" & _
"nesta pasta de trabalho?", vbYesNoCancel Or _
vbQuestion, "Salvar Personalizada")
If Resp = vbYes Then
WS.Save
MsgBox "Backup Realizado com Sucesso !!!", vbExclamation
ElseIf Resp = vbCancel Then
Cancel = True
End If
Else
MsgBox "Até mais", vbExclamation
End If
Application.DisplayFullScreen = False
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'programação para bloquear salva e salvar como da planilha, apenas com senha)
Const Senha As String = "1234"
Dim SenhaDigitada As String
SenhaDigitada = InputBox("Esta Planilha só pode ser salva com senha, Favor Informar ! ! !:", "Salvar Planilha", "", 400, 300)
If Not SenhaDigitada = Senha Then
MsgBox "SENHA INCORRETA. Esta planilha não pode ser salva.", vbInformation, "Mensagem"
SaveAsUI = True
Cancel = True
End If
End Sub

Sendo que uma das planilhas "plan desenho", pode realizar impressão e vizualizar a impressão. Na plan Desenho tenho uma macro chamada Impressão e outra chamada Visualização, quando eu clicar em alguma delas eu gostaria que ele manda-se imprimir direto sem solicitar a senha e a mesma coisa para vizualização de impressão.

Abçs

Daniela

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 15/09/2011 7:23 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Tenta assim dias:

'Programação para bloquear impressão da planilha, apenas com senha)
Private Sub Workbook_beforePrint(Cancel As Boolean)
Dim SenhaDigitada As String

    Const Senha As String = "123"
    If ActiveSheet.Name <> "desenho" Then
        SenhaDigitada = InputBox("Informe a Senha para Imprimir:", _
        "Imprimir Planilha", "", 400, 300)
    
        If Not SenhaDigitada = Senha Then
            MsgBox "SENHA INCORRETA. Impressão Não Realizada.", vbInformation, "Mensagem"
            Cancel = True
        End If
    End If
    
End Sub

Qualquer coisa da o grito.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 15/09/2011 8:14 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Ok mais eu queria que qdo o usuario clica-se no meu botão de imprimir, na macro botão que eu criei ele pude-se imprimir direto sem solicitar senha?
Ou seja eu ja tenho o botão e que se só possa realizar impressão pelo botao que eu criei e apenas da planilha Desenho.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 15/09/2011 10:13 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Não estou entendendo...

tem como postar uma modelo dessa planilha?

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 15/09/2011 10:20 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Segue . . .

att.
Daniela

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 15/09/2011 11:18 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Daniela, pelo que entendi, quando clicar no Botão Imprimir e a Aba for a "Desenho Ponte", não precisara de Senha, se for isto, faça as seguintes alterações:

No Modulo2 de seu aplicativo acrescente as linhas:

Public Const nomePlanilhaDesenho As String = "Desenho Ponte"

Public wsDesenho As Worksheet

No Botão de Imprimir, altere conforme abaixo :

Private Sub CommandButton1_Click()
    Set wsDesenho = Worksheets(nomePlanilhaDesenho)

    ActiveWindow.SelectedSheets.PrintOut
    
    Unload Me
    
End Sub

Modifique a rotina do Evento beforePrint, conforme abaixo :

Private Sub Workbook_beforePrint(Cancel As Boolean)

    Const Senha As String = "123"
    Dim SenhaDigitada As String
    
    If wsDesenho.Name = "Desenho Ponte" Then
    
    Else
    
        SenhaDigitada = InputBox("Informe a Senha para Imprimir:", "Imprimir Planilha", "", 400, 300)
    
        If Not SenhaDigitada = Senha Then
            MsgBox "SENHA INCORRETA. Impressão Não Realizada.", vbInformation, "Mensagem"
            Cancel = True
        End If
        
    End If

End Sub

Espero que seja isto, faça os testes e qq duvida retorne.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 15/09/2011 6:40 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Mauro, fiz mais não deu certo ... ele continua pedindo a senha para impressão ou vizualização quando eu clico no imprimir do botão "IMPRESSÃO".

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 16/09/2011 5:18 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Daniela, nos testes que eu havia realizado, não me foi solicitado a senha, você chegou a trocar as rotinas do evento beforePrint e do botão imprimir pela que postei ? Você manteve o nome da Aba "Desenho Ponte", lembre-se, só não será solicitado senha para esta Aba, quando utilizarmos o botão que se encontra nesta aba.

Vou localizar o modello que fiz e depois anexo.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 16/09/2011 5:23 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Daniela, no Botão "Visualizar", troque a rotina pela a abaixo :

Desta forma, fechamos o Form antes de visualizar, se não dapane.

Private Sub CommandButton2_Click()

Set wsDesenho = Worksheets(nomePlanilhaDesenho)

    Unload Me

    ActiveWindow.SelectedSheets.PrintPreview

End Sub

De qualquer forma, segue o exemplo que alterei, a não ser que eu tenha entendido de outra forma, está realizando conforme você disse, sem solicitar senha para a aba "Desenho Ponte".

:roll: []s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 16/09/2011 5:47 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Mauro
Não sei se me expressei bem.
A forma que vc me deu o exemplo esta certo até a parte de imprimir pelo botão impressão sem pedir senha.
Só que qdo eu retorno para a CAPA ele não esta me pedindo mais senha esta imprimindo direto, o que não pode acontecer tem que pedir senha. Sera que teve alguma pane? Baixei o arquivo q vc me passou.

Desculpe se estou dificultando

:roll:

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 16/09/2011 1:12 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Daniela, veja se neste outro exemplo funciona como quer.

Alterei as rotinas adicionando no Evento Open do Workbook para Setar os Nomes das Abas e quando for Imprimir captar qual a Aba Ativa, e atraves do Select Case fazer a verificação se solicitamos a senha ou não.

Qualquer duvida, retorne.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 16/09/2011 7:49 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Agora sim Mauro funcionou muito bem, obrigada pela ajuda.

Agora não abusando da sua boa vontade, vc poderia me ajudar no seguinte.

Como faço para mudar o icone desta pasta de trabalho? Apenas desta? pq tem um geito q vc clica com o botão direito e altera mais isso muda todas as pastas quero mudar o icone apenas desta pasta como faço?

Abçs Daniela

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 19/09/2011 5:38 am
Página 1 / 2