Notifications
Clear all

Travar Tecla Shift

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

Bom dia a todos do Fórum

Minha dúvida é a seguinte: meus conhecimentos em VBA são básicos, mas como sou um curioso, e como no Fórum existem muitos exemplos de como implementar determinada ação num projeto e, principalmente por termos muitas pessoas gabaritadas no assunto, bem como solícitas, a gente vai incrementando nossos projetos aos poucos. Baseado em exemplos, e com a ajuda do Josiel Melo, adaptei a questão do login em minha planilha com o controle de permissões para usuários. Porém, para "burlar" o login, basta abrir a planilha mantendo-a pressionada a tecla shift.

Nesse código vc bloqueia e desbloqueia várias teclas, mas e a SHIFT? O que acrescentaria no código para fazer isso? Ou seria outro código?

Function mensagem()

MsgBox "Teclas bloqueadas.", vbOKOnly + vbExclamation, "Falta Permissão!"

Application.EnableCancelKey = xlDisabled

End Function

Sub proibirtec()

Application.OnKey "^{BREAK}", "mensagem"

Application.OnKey "^o", "mensagem"

Application.OnKey "^a", "mensagem"

Application.OnKey "^c", "mensagem"

Application.OnKey "^v", "mensagem"

Application.OnKey "^x", "mensagem"

Application.OnKey "^r", "mensagem"

Application.OnKey "^y", "mensagem"

Application.OnKey "^k", "mensagem"

Application.OnKey "^1", "mensagem"

Application.OnKey "{F1}", "mensagem"

Application.OnKey "{F7}", "mensagem"

Application.OnKey "^{F1}", "mensagem"

Application.OnKey "{F11}", "mensagem"

Application.OnKey "%{F11}", "mensagem"

Application.OnKey "%{F8}", "mensagem"

Application.OnKey "%l", "mensagem"

Application.OnKey "%u", "mensagem"

Application.OnKey "+", "mensagem"
End Sub

Sub permitirtec()

Application.OnKey "^{BREAK}"

Application.OnKey "^o"

Application.OnKey "^a"

Application.OnKey "^c"

Application.OnKey "^v"

Application.OnKey "^x"

Application.OnKey "^r"

Application.OnKey "^y"

Application.OnKey "^k"

Application.OnKey "^1"

Application.OnKey "{F1}"

Application.OnKey "{F7}"

Application.OnKey "^{F1}"

Application.OnKey "{F11}"

Application.OnKey "%{F11}"

Application.OnKey "%{F8}"

Application.OnKey "%l"

Application.OnKey "%u"
Application.OnKey "+"

End Sub

Se bloquear a tecla Shift não há como pular o sistema de login para acesso da planilha.

Desde já agradeço a atenção dispensada.

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

 
Postado : 10/04/2012 7:47 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Eu dei uma lida superficial no post (quando der, vou ler com mais calma), mas como o Mauro já indicou, de que adianta travar a tecla shift se você não habilitar as macros? O ideal para não permitir ver as sheets é mudar a propriedade visible delas para 2, deixando somente uma aberta (pois é obrigatório) e nela escrito que para ter acesso a todos recursos do arquivo que é necessário habilitar a execução das macros. Depois, trave a visualização dos códigos no projeto no Editor VBE com uma senha.

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

 
Postado : 14/04/2012 5:16 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa noite, Alexandre, Mauro e demais!

E ahe, alguma novidade quanto as idéias propotas no projeto da planilha? Tenho percebido que o tópico está bem movimentado, porém to meio ansioso em receber algumas contribuições, implementos para a plan.

Ando meio sem tempo, mais estarei com freq maior aqui.

Até mais!

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

 
Postado : 20/04/2012 5:58 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia!!

Como vai sua questão da tecla SHIFT?

Tente mais... como.

Application.DataEntryMode = xlStrict 
'SuaMacro
Application.DataEntryMode = xlOff 

É importante re-saltar que, ha meios (já que a macro deve está habilitada) e caso não esteja, que impossibilita o acesso livre de uso do arquivo, como o fato de as planilhas (Guias), estarem ocultas (Sheets("SuaPlanilha").Visible = xlVeryHidden).

Use seu conhecimento e criatividade para combinar as opções e variáveis chances de solucionar teu caso!!

Boa sorte!
Abraços..e até a próxima :)

Att

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

 
Postado : 17/06/2012 8:50 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Alexandre, boa noite!

Eu fiz alguns progressos no arquivo, mas em relação a tecla shift não consegui. Gostaria de saber se eu poderia postar o arq atual com as modificações que fiz e a partir dai fazer algumas solicitações e esperar a contribuição dos leitores. Eu vi alguns exemplos do Ivair Ferrari, mas este estão com o projeto bloqueado. Eu queria me basear pelo dele p implementar algumas coisas nas minhas plans.

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

 
Postado : 17/06/2012 4:20 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa noite!!

Quanto ao postar o arquivo, desde de que ele esteja dentro da regra do fórum (tamanho e formato), não tem problema, sinta se a vontade!
Caso o assunto ainda esteja condizente com seu título, caso não abra outro tópico para falar de outro assunto mesmo que envolva o mesmo arquivo.

Att

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

 
Postado : 17/06/2012 4:56 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia,

Amiguinhos, olhem o TITIO aqui novamente,

Irmãos, nosso irmãozinho pedroconcurso2007 tem batido a cabeça na parede com a trava shift, eu mesmo estou engatinhando em vba, mas sempre estou em busca de +++++++++++++++++++++ conhecimento e aprendizado.

Desde que surgiu a dúvida, fiz alguns teste mais no meu computador não funciona, eu abro os arquivos com a tecla shift precionada mas não pula a tela de login, não sei se alguma coisa em minha maquina.

Vamos lá, com muita pesquisa desde que surgiu a duvida, hoje consegui encontrar algo, um codigo que diz fazer isso vejam:

Em um Móulo

Function AlterarPropriedade(strPropName As String, _
         varPropType As Variant, varPropValue As Variant) As Integer
Dim dbs As Database, Prp As Property
Const conPropNotFoundError = 3270
    Set dbs = CurrentDb
    On Error GoTo Change_Err
    dbs.Properties(strPropName) = varPropValue
    AlterarPropriedade = True
Change_Bye:
    Exit Function
Change_Err:
    If Err = conPropNotFoundError Then
        ' Propriedade não localizada.
        Set Prp = dbs.CreateProperty(strPropName, varPropType, _
                  varPropValue)
        dbs.Properties.Append Prp
        Resume Next
    Else
        ' Erro desconhecido.
        AlterarPropriedade = False
        Resume Change_Bye
        End If
End Function

Criar dois botões, Ativa SHIFT e Desativar SHIFT

'Ativa a Tecla SHIFT
Private Sub ativa_Click()
 AlterarPropriedade "AllowBypassKey", dbBoolean, True
    MsgBox "Tecla Shift ativada!", , "Tecla Shift"
End Sub
 
' Desativa a Tecla SHIFT 
Private Sub Desativa_Click()
AlterarPropriedade "AllowBypassKey", dbBoolean, False
    MsgBox "Tecla Shift desativada!", , "Tecla Shift"
End Sub

Fonte: http://www.expertaccess.com.br/forumnew/forum_posts.asp?TID=12822

Bem, como mencionei anteriormente, em minha maquina o procedimento da tecla shift não funciona, por tal gostaria que fizessem os teste e retornassem para sabermos se realmente funciona.

Um forte abraço do TITIO.

No aguardo.

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

 
Postado : 23/06/2012 6:07 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Pessoal, desculpe a forma que vou falar, não pensem q sou bruto, mas:
Não dá para garantir segurança no Excel, como já foi falado em postagem anterior.
E digo mais, não dá pra criar um código que garanta a execução dele mesmo. Entende?

O shift está sendo apertado ANTES do código rodar, impedindo sua execução. Se o código não roda, logo na abertura, então não existe nenhuma, repito NENHUMA, linha de código que viabilize sua solicitação. Exatamente porque essa linha nunca vai rodar. Infelizmente é isso. E acredite, é por segurança que o Excel faz assim e tem o shift exatamente pra isso. Imagina se a planilha tivesse código maligno, como antigamente existiam virus de macro, lembra? Impedir a execução de um código é super importante.

Dito isso, vamos adiante, quanto à visualização do código. Há duas formas de bloquear a visualização do código no Excel:
1- No VBE, vá Ferramentas/Propriedades do Projeto/Proteção. Nesta tela, com ou sem senha, vc pode clicar e definir a visibilidade do código. Problema é q se não tiver senha, qualquer um pode 'ligar' a visualização. E mesmo que tenha senha, há diversos programas na internet que a quebram. Ou seja, seu código em Excel está SEMPRE vulnerável.
2- uma alternativa para esconder o código é compartilhar a pasta de trabalho, recurso interessante do Excel que permite mais de uma pessoa mexer no arquivo ao mesmo tempo. Por padrão, quando um arquivo (pasta de trabalho) está compartilhado, o código fica invisível. Tente. Este recurso está na aba Revisão / Compartilhar Pasta de Trabalho. Nunca testei isso no OpenOffice nem no BROffice, e sinceramente, não vou testar, rs. Principalmente pq não tenho e não vou baixá-los e instalá-los. Mas fica a dica, se der certo, nos avise :).

Quanto às outras solicitações, de melhorias no seu projeto, entendo a sua necessidade, claro. Mas você de fato está pedindo melhorias sistêmicas bem complexas, uma sugestão se quiser que isso seja bem feito e por um profissional, vc deveria contratar alguém para fazer tudo pra você. Aqui no forum mesmo, há diversas pessos acredito eu que muito bem preparadas para te ajudar nisso. Não, não é crime contratar alguém que você conheceu aqui.

CLARO que aqui vc terá dicas fantásticas, mas são dicas, ajudas, soluções até, mas daí, sugiro então que você crie um tópico por pergunta/solicitação. E aí você vai aplicando o que quer conforme for aprendendo, no seu projeto, faz sentido? Assim outras pessoas também poderão aprender com as suas dúvidas, o que é a utilização conceitual de um forum.

Espero não ter esquecido nada e respondido suas perguntas. Se quiser continuar conversando, estamos aqui pra isso.
Desculpe o texto longo, e se em algumas partes eu fui meio bruto, é... é meu jeitão.

Um abraço.

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

 
Postado : 23/06/2012 9:23 am
Página 2 / 2