Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
  • Avatar do usuário
Por RuiPahul
Posts
#27859
Olá.
Como posso codificar no VBA o exemplo abaixo:
If Application.OnKey "^{F1}" = ON then
Application.OnKey "^{F1}" = OFF
end if
isto é, saber se determinado 'onkey' está 'on' ou 'off', e daí ligá-lo ou desligá-lo.
Desde ja obrigado
Rui
Avatar do usuário
Por gfranco
Avatar
#27860
Boa tarde. RuiPahul.
Eu. Costumo proceder da seguinte forma quando trabalho com o onkey no vba:
Faço a ativação dela no workbook open e já deixo um application.onkey com procedure em branco no workbook before close para volta-las ao funcionamento normal quando aquela pasta for fechada.
Por RuiPahul
Posts
#27864
Oi GFranco,
Na realidade o meu problema é que o 'ctrl+F1' funciona no teclado. Ele mostra ou oculta a barra de ferramentas. Mas em uma SUB não 'funciona'. Em uma determinada planilha eu não posso ter na tela a barra de ferramentas. Por isso queria oculta-la e não estou conseguindo.
Avatar do usuário
Por alexandrevba
Avatar
#27874
Bom dia!!

Caso sua ideia seja, usar essas teclas com efeito em um arquivo (workbook), tente o exemplo abaixo.
Código: Selecionar todos
Option Explicit
    
Private Sub Workbook_Activate()
'Este código dentro do módulo EstaPasta_de_trabalho
    Application.OnKey "^{F1}", "Teste"
End Sub
Código: Selecionar todos
Private Sub Workbook_Deactivate()
'Este código dentro do módulo EstaPasta_de_trabalho
    Application.OnKey "^{F1}"
End Sub
Código: Selecionar todos
Sub Teste()
'Este código dentro de um módulo comum
    MsgBox "This is a testing message "
End Sub
Fonte:https://www.rondebruin.nl/win/s4/win012.htm

Obs:Lembre se de salvar e fechar, depois abrir o arquivo após inserir o código nos múlos indicado!

Att
Por RuiPahul
Posts
#27875
Olá,
Agradeço as vossas ‘soluções’, que testei mas não resolvem o meu ‘problema’. Acho que apresentei mal a minha dificuldade. Vou tentar ser maIs explicito.
Eu chamo o Excel, ele se apresenta, por exemplo, com a ‘Faixa de Opções’ oculta. Então eu pressiono o ‘CTRL+F1’ e a ‘Faixa de Opções’ apresenta-se na tela. Ok. Tudo bem. Aí eu fecho o Excel. Ok. Tudo bem. Volto a chamar o Excel e ele vem apresentando a ‘Faixa de Opções’, e aí eu tenho o ‘meu problema’.
Então, estando no Excel, com ou sem dados não importa, se eu pressionar ‘CTRL+F1’ a ‘Faixa de Opções’ se estiver presente vai ocultar-se, se estiver oculta ela vai aparecer. É um ‘ponteiro’ ON/OFF, um Liga/Desliga, um 1/0 em ‘qualquer lugar’ do Excel. Exatamente como outros ‘ponteiros’ do Excel, como ‘Negrito’ Ligado/Desligado, como ‘Sublinhado’ Ligado/Desligado, como ‘ScreenUpdating’ True/False, etc, etc. Mas nestes exemplos (Negrito, ScreenUpdating, etc) eu posso ligá-los e/ou desligá-los, de acordo com o interesse da minha programação.
Mas não sei como programar o ‘apresentar/ocultar a Faixa de Opções’.
Obrigado pela vossa paciência, e ajuda.
Att. Rui
Avatar do usuário
Por alexandrevba
Avatar
#27879
Boa tarde!!

Há um padrão comum no pacote office (especialmente Excel), que a instalação armazena uma "configuração" do usuário e também recebe a "configuração" de uma outra instalação.

Exemplo: Se eu expandi minha barra de formula, salvar e fachar esse arquivo, qualquer instancia do excel que for aberta ficará com essa opção ativa, etc.

Se você ocultar via macro a barra de menu, ao fechar o arquivo terá que exibir-lá novamente e vice versa, do contrário a instalação desse PC vai pegar a ultima alteração do usuário e manter na próxima instancia que vai ser aberto em outro momento.

De acordo com seu título (do seu post), sua dúvida era sobre ('Application.OnKey ='), mas creio que você deve manipular os objetos(barra de menu) do workbook, com a mesma ideai que eu havia passado no post anterior( ou seja, ao ativar, abrir, desativa, fechar o arquivo).

Att
Por RuiPahul
Posts
#27889
Oi, Alexandre
A solução que você me apresentou eu testei. Ela bloqueia a utilização do ‘Ctrl+F1’, isto é, quando pressiono ‘Ctrl+F1’ não faz o ‘ocultar/re-exibir’ da Faixa de Opções, mas aparece uma mensagem dizendo ‘Esta é uma mensagem de teste’.
Mas a minha necessidade é ocultar a Faixa de Opções quando entro em determinada planilha e antes de apresentar os repetivos dados (Ex: Plan3). As diversas planilhas deste arquivo Excel podem ter, ou não ter, a Faixa de Opções ativada. Mas a Plan3, não tem edição de dados, só apresentação de dados. Não precisa nunca da Faixa de Opções. Quando programei o layout da Plan3, não previ o eventual exibir da Faixa de Opções. Então eu não posso (isto é, eu não quero) ter a Faixa de Opções visivel porque me ‘adultera’ o layout da tela. Quando me esqueço, tenho de sair da Plan3, pressionar o ‘Ctrl+F1’ e voltar a entrar na Plan3. Nada de grave, mas ... não é ‘agradável’.
Eu posso, sem qualquer duvida, modificar o layout da Plan3. Mas o layout que eu quero fica prejudicado e fica mais fácil (penso eu) ocultar a Faixa de Opções por código VBA. Não sei como fazer, mas vou descobrir. O grande prazer da programação é superar estes desafios, né?
Att. Rui
Por RuiPahul
Posts
#27891
Olá,
Resolvi o meu problema.
Na planilha em questão (ex: Plan3) coloquei o código abaixo:
--------------------------------------------------------------------
Option Explicit
Private Sub WorkSheet_Activate()
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"
End Sub
Private Sub WorkSheet_Deactivate()
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)"
End Sub
-----------------------------------------------------------------------
Agradeço a todos a ajuda prestada. Muito obrigado.
Att. Rui.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord