Notifications
Clear all

SENHA PARA VISUALIZAÇÃO DE ABAS

20 Posts
3 Usuários
0 Reactions
7,253 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa tarde pessoal!

Estou fazendo um controle de pedidos, onde alguns usuários terão acesso à algumas informações.

Gostaria de saber se tem como ao clicar em uma aba "fulano", aparecesse uma janela pedindo uma senha de acesso àquela aba. Caso a senha esteja errada, a planilha permanece na aba inicial, caso esteja correta, a aba "joão" pode ser visualizada e alterada...

Desde já agradeço!
;)

 
Postado : 25/03/2011 11:41 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Edvan,
Tem como sim.
Voce deve, criar um formulário para digitação da senha.
Uma vez com esse formulário criado, você inclui uma rotina no evento Activate do Objeto WorkSheet
(Botão direito do mouse na aba, acessa o código e inclua o código abaixo)

Private Sub Worksheet_Activate()

End Sub

Nesse evento, você inclui a chamada para essa validação.
Fica mais ou menos assim:

Private Sub Worksheet_Activate()
    If Not PermitiAcesso(Me) Then
        Worksheets("Inicio").Activate
    End If
End Sub

Function PermitiAcesso(plan As Worksheet) As Boolean
    'Aqui voce valida se o cara deve ou não ver a planilha
    'Devolve um retono True ou False para a funcao
    'PermitiAcesso = True : A planilha pode ser ativada
    'PermitiAcesso = False : A planilha Não pode ser ativada
    
End Function
 
Postado : 25/03/2011 11:55 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Não entendi muito bem...

Em relação ao formulário de digitação que vc falou, devo:
1 - Criar é na planilha (desenvolvedor/ inserir/ controles de formulários....)
2 - Criar dentro do visual basic (desenvolvedor/ visual basic/ inserir/ userform)
2.1 - se sim, como faço para fazer com que ele apareça na minha tela inicial?

3 - Onde que devo inserir a senha correta para que o código a consulte, e autorize ou não o acesso à planilha?
4 - Vc tem alguma recomendação para download de apostila de VBA? quebrei bastante a cabeça com isso, que deve até ser uma coisa simples, mas que não tenho domínio algum...

Vlw por ter respondido!

 
Postado : 29/03/2011 11:39 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Amigon, o formulário voce cria no Visual Basic (VBA)

Para que ele apareça, voce deve inserir a chamado do mesmo no evento da planilha.

Sobre Eventos:

Os aplicativos VBA possui um recurso chamado evento que, nada mais é do que uma rotina que executa automaticamente quando algo ocorre.

Os eventos estão associados a seus objetos especificos, no caso de uma planilha, há diversos eventos disponiveis que são executados.

Os mais usuais são Activate, Change, SelecionChange entre outros.

Observe que os nomes são autoexplicativos (em ingles é claro).

Activate: executa sempre que uma planilha (plan1 por exemplo) recebe o foco, ou seja, é ativada.

No exemplo que mandei, voce coloca a chamada para exibir seu formulário

Function PermitiAcesso(plan As Worksheet) As Boolean

    'Aqui voce exibe o fromulário para digitação da senha
    UserForm1.Show
    'Devolve um retono True ou False para a funcao
    'PermitiAcesso = True : A planilha pode ser ativada
    'PermitiAcesso = False : A planilha Não pode ser ativada
    
End Function
 
Postado : 29/03/2011 3:24 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Prezado,

Outra forma de fazer "neston" é assim tb (credito para [email protected])

Sub linkar_senha()
Dim nome As String
'Declara 2 vetores: uma para as planilhas e outro para as senhas
Dim Planilha(26) As String
Dim Senha(26) As String

Planilha(1) = "AC"
Planilha(2) = "AM"
Planilha(3) = "AP"
'... E assim sucessivamente

Senha(1) = "master"
Senha(2) = "senha2"
Senha(3) = "senha3"
'... E assim sucessivamente

nome = InputBox("Digite a Senha", "ATENÇÃO")
'Verifica o valor da célula N1 e seleciona a planilha correspondente
If nome = Senha([N1]) Then
Sheets(Planilha([N1])).Activate
Else
MsgBox "Senha Incorreta", vbInformation, "ATENÇÃO"""
End If
End Sub

 
Postado : 31/03/2011 1:50 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

a dica tb é valida, porem não tem a mascara da senha ! (******).
assim, a senha é visivel.

 
Postado : 31/03/2011 2:20 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Prezado adelson,
estou com a mesma dúvida, porém fui seguir sua indicação ... mas não consegui.... na funcao que vc colcou só tem comentários??

o qyue deve ter no form?? botão ok??

 
Postado : 16/04/2011 10:44 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

consegui fazer o que queria... vlw pela ajuda...

já não vou mais ter que usar aquelas antigas requisições de material...rsrs

não ficou 100%, mas já atende minhas necessidades...

o que fiz foi bem simples... coloquei para que sempre que a planilha fosse aberta iniciasse na tela início, onde é exibida a tela com os campos de usuário e senha..

o único problema que tenho, é que não consigo ocultar de forma definitiva as abas (se o usuário for esperto, ele clicará na aba correspondente pulando a tela início, que exige senha para a abertura das abas...)
fiz uma "gambiarra" para ocultar as abas... só espero que os usuários não descubram... husahsuah

segue anexo a planilha... ainda farei ajustes nela, mas já ta rodando bem..

as senhas são as seguintes:
usuário 1 = 789
usuário 2 = 456
usuário 3 = 123

a senha dos códigos é "resident" (sem aspas)

se alguém tiver uma sugestão para sanar o problema em ocultar as abas tbm agradeço! :D

vlw!

 
Postado : 19/04/2011 12:08 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Edvan, não pude visualizar seu exemplo, pois não tenho o excel 2007 aqui no serviço. Então anexei um outro modelo aonde é solicitado usuário e senha para se acessar as abas.
Na mesma, somente a Aba INICIO é exibida, as demais estão ocultas com as instruções diretamente nas rotinas, utilizando-se as Propriedades :
Visible =
xlSheetVisible
xlSheetVeryHidden

Com estas propriedades, as ABAS não aparecem no Menu /Formatar / Planilhas / Reexibir.
Se analizar as rotinas verá que é bem simples implementar em sua planilha a rotina par se ocultar as ABAS

Anexo atualizado em 23/05/13
Acesso as Abas por Usuario e Senhas

Veja se ajuda, e se der a noite dou uma olhada no seu modelo.

[]s

 
Postado : 20/04/2011 9:27 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Edvan, não entendi a relação dos Textboxs em seu Modelo, alias estão sem funcionalidade, a não ser que na conversão para o excel 2003 perdeu-se alguma rotina.

De qualquer forma recontrui as rotinas com as opções de se verificar os Usuários / Senhas atreladas às ABAS que podem acessa, acrescentei mais uma "ADMINISTRADOR" aonde estão cadastrados os, Usuários, Senhas e os Nomes das ABAS que podem acessar, de uma olhada se seria isto.

Anexo atualizado em 23/05/13

abraços

 
Postado : 20/04/2011 9:32 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

era exatamente isso que estava faltando!.. vlw!!

segue a planilha no formato do office 2003 e 2007....

 
Postado : 25/04/2011 11:08 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Verdade... no exemplo que vc encaminhou por último os text boxes não estão funcionando...
só fui ver seu último exemplo agora... mantive os text boxes (estes testei e funcionaram).

*O login administrador pode visualizar todas as abas

vlw! abraço!

 
Postado : 25/04/2011 11:32 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Edvan, o arquivo que anexou é igual ao anterior ?

Não tem verificação quanto a Usuário/Senha e Planilha, somente é verificado se a senha digitada nos textbox confere com as que estão na propria rotina, se Sim, acessa a planilha referenciada na propria rotina.

[]s

 
Postado : 25/04/2011 12:21 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

a planilha é igual a anterior sim...
só adicionei um administrador e ocultei de vez as abas para impedir acessos não autorizados a áreas específicas...

é exatamente isso que acontece... sei q não é a melhor forma de fazer... é que iniciei com VBA esses dias e não saco muito ainda... mas como resolveu meu problema, deixei queto.. rsrs

o jeito que você fez ficou melhor, mas antes de usar, preciso estudar os códigos e entender o que foi feito pra não ficar nessa de copiar e colar os códigos...
gostei do comando que limita a barra de rolagem! vlw, abraço e obrigado!

 
Postado : 25/04/2011 1:20 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Edvan, já que está iniciando, vai uma outra dica quanto a ocultar as Abas.

Quando usa a Propriedade Visible, em sua rotina está :
ActiveWorkbook.Sheets("cad").Visible = False,
desta forma se formos no Menu / Formatar / Planilha, verá que a opção Reexibir aparece, podendo assim tornar visivel a que selecionarmos, agora se utilizar xlSheetVeryHidden, esta opção não estará disponivel, ou seja, só poderemos reexibi-la novamente atraves das rotinas.
ActiveWorkbook.Sheets("cad").Visible = xlSheetVeryHidden

Na Ajuda propria do excel na tela do VBA, você tem muita informação e exemplos, quando iniciei, alias até hoje ainda recorro a esta ajuda do excel, é um dos melhores aliados para aprendermos e entendermos muito do que se faz no VBA.

[]s

 
Postado : 25/04/2011 1:42 pm
Página 1 / 2