Notifications
Clear all

Desabilitar tecla F11 – como fazer

8 Posts
2 Usuários
0 Reactions
1,925 Visualizações
(@marco-acv)
Posts: 142
Estimable Member
Topic starter
 

Amigos, tem como desabilitar a tecla F11, no excel?

Preciso desabilitar a tecla F11 (não a combinação de alt+F11).
Quando eu aperto a tecla sem querer, automaticamente o excel cria uma guia como o Nome Graf (coisa chata viu srsr)
Amigos, tem como desabilitar essa tecla no excel?

Muito obrigado a todos pela atenção.
Atenciosamente,

 
Postado : 05/04/2017 12:45 pm
felipemazz
(@felipemazz)
Posts: 59
Trusted Member
 

Execute uma macro com esta linha de código:

Application.OnKey "{F11}", ""

Lembrando que isto vai desabilitar a tecla. Para habilitá-la novamente:

Application.OnKey "{F11}"

Se ajudou, dê um joinha na mensagem! :D

 
Postado : 05/04/2017 12:51 pm
(@marco-acv)
Posts: 142
Estimable Member
Topic starter
 

Olá, boa tarde!

Eu criei essa macro:
Sub teste()
Application.OnKey "{F11}", ""
End Sub

Se a planilha estiver aberta funciona certinho :) :) :) , porém se eu fechar a planilha e abrir novamente ela não da certo :cry: :cry: :cry: :cry: :cry:

Tem como deixar automático isso?

Exemplo: quando o usuário abrir a planilha e tentar apertar a tecla não vai funcionar.

Muito obrigado!

Atenciosamente,
Marco

 
Postado : 05/04/2017 1:45 pm
felipemazz
(@felipemazz)
Posts: 59
Trusted Member
 

Olá, boa tarde!

Eu criei essa macro:
Sub teste()
Application.OnKey "{F11}", ""
End Sub

Se a planilha estiver aberta funciona certinho :) :) :) , porém se eu fechar a planilha e abrir novamente ela não da certo :cry: :cry: :cry: :cry: :cry:

Tem como deixar automático isso?

Exemplo: quando o usuário abrir a planilha e tentar apertar a tecla não vai funcionar.

Muito obrigado!

Atenciosamente,
Marco

Fala Marco!
Tem sim, é fácil!

Só fazer o seguinte:

Na árvore do seu projeto VBA, tem uma pasta chamada: Microsoft Excel Objetos
Dentro dela, tem um chamado: EstaPastaDeTrabalho

Dentro de EstaPastaDeTrabalho, jogue a macro dentro de uma sub chamada Workbook_Open

Ficará assim:

Private Sub Workbook_Open()

Application.OnKey "{F11}", ""

End Sub

Lembrando que é importante você colocar também, dentro da sub Workbook_BeforeClose uma tirando essa propriedade da tecla F11, para que quando o usuário fechar esta planilha, a tecla F11 voltar a funcionar normalmente, que ficaria assim:

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Application.OnKey "{F11}"

End Sub

E Já respondendo a pergunta que me fez inbox, Se quiser utilizar a tecla F8 ao invés da F11, é só alterar ali dentro mesmo, ficaria:

Private Sub Workbook_Open()

Application.OnKey "{F8}", ""

End Sub

Qualquer dúvida, pode perguntar! :D
Grande abraço.

Edit: Não incomoda jamais fazendo perguntas Marco! Quanto mais pessoas souberem VBA, melhor.
Mais desenvolvemos o Forum, mais nos auto-desenvolvemos, e mais aprendemos. Toda e qualquer dúvida é sempre bem-vinda!

 
Postado : 06/04/2017 8:52 am
(@marco-acv)
Posts: 142
Estimable Member
Topic starter
 

Muito obrigado pela atenção. :) :) :)

Eu montei uma macro assim:

Private Sub Workbook_Open()
Application.OnKey "{F6}", ""
Application.OnKey "{F7}", ""
Application.OnKey "{F8}", ""
Application.OnKey "{F9}", ""
Application.OnKey "{F10}", ""
Application.OnKey "{F11}", ""
End Sub

Só assim mesmo ou tem outra forma para desabilitar mais de um botão no excel?

Observação: desse jeito da certo, mas fica meio longo o código neh :lol: :lol: :lol: :lol:

Será que existe alguma tipo assim:
Private Sub Workbook_Open()
Application.OnKey "{F4}", "{F5}", "{F6}", "{F7}", "{F8}", "{F9}", "{F10}", "{F11}", ""
End Sub

TODAS AS TECLAS ESTÃO NA MESMA LINHA

MUITO OBRIGADO DESDE JÁ.

ATENCIOSAMENTE,
Marco

 
Postado : 06/04/2017 10:53 am
felipemazz
(@felipemazz)
Posts: 59
Trusted Member
 

Marco, infelizmente não :(
Uma maneira de ficar mais bonita, é utilizando o With, mas você apenas economizará letras, e o código ficará mais "legível"

Ficaria:

Private Sub Workbook_Open()
With Application
                 .OnKey "{F6}", ""
                 .OnKey "{F7}", ""
                 .OnKey "{F8}", ""
                 .OnKey "{F9}", ""
                 .OnKey "{F10}", ""
                 .OnKey "{F11}", ""
End With
End Sub

Fazendo desta maneira, você declara para o VBA, que tudo que for escrito em cada linha, "iniciará" com o Application. Ou seja, toda propriedade, evento, etc que você utilizar, será para o objeto Application.

(Tudo que iniciar com "." )

 
Postado : 06/04/2017 11:03 am
felipemazz
(@felipemazz)
Posts: 59
Trusted Member
 

Ou então, um jeito meio maluco, mas acredito que funciona, seria fazer o seguinte:

Private Sub Workbook_Open()
     For i = 6 to 11
          Application.OnKey "{F" & i & "}", ""
     Next
End Sub

Você passará pelos números 6 até 11, aplicando a linha de comando para cada uma...
Não tenho certeza se funciona, não consigo testar agora, mas faça o teste hehehe

 
Postado : 06/04/2017 11:07 am
(@marco-acv)
Posts: 142
Estimable Member
Topic starter
 

ÓTIMO, ISSO MESMO :D :D :D .

Atenciosamente,
Marco

 
Postado : 06/04/2017 12:42 pm