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
Por HFTajra
#26821
Amigos,

Eu usava uma pasta de trabalho do Excel 2007 com várias macros e várias planilhas. Ao atualizar essa pasta de trabalho para a versão 2013, algo estranho aconteceu e gostaria da ajuda de vocês para tentar solucionar.

A pasta de trabalho possui uma planilha inicial onde coloco as macros, como se fosse a tela inicial de um sistema.

Uma dessas macros, chama um caixa de diálogo e reexibe uma planilha que estava oculta para edição. Nessa hora ocorre da tela do Excel ficar congelada, embora seja exibida a planilha.

O estranho é que isso só ocorre se a macro estiver no botão "ok" da caixa de diálogo. Se a macro estiver na folha de macros padrão, a tela funciona normalmente.

O arquivo anexo contém duas versões da mesma macro, uma que trava e outra que não trava.

O mais estranho é que embora a tela fique congelada mostrando a planilha que estava oculta, qualquer digitação que for feita é armazenada na planilha inicial

Achei que o erro fosse de instalação do Excel na minha máquina, mas o problema ocorre em todas as máquinas com a versão Office Standard 2013 que pude testar.

Alguém poderia ajudar?

Um abraço e muito obrigado a todos,
Você não está autorizado a ver ou baixar esse anexo.
Avatar do usuário
Por wesleyribeiro123
Posts Avatar
#26831
HFTajra
Boa tarde,

Amigo, rodei as duas macros em minha máquina e ambas executou normalmente e consegui editar a planilha sem nenhum problema.
Eu utilizo o Excel 2016.

Um conselho que te daria é, não utilize o método Userform.Hide pois ele apenas oculta o Userform deixando-o em 2º Plano. Tente realizar o Unload Userform, neste método o teu Form será finalizado... Mas acredito que isso não resolva teu problema de congelamento da tela, é apenas uma observação para que tua aplicação não fique tão pesada em processamento.

Como minha tela não travou, é dificil conseguir avaliar e te dizer algo!
Avatar do usuário
Por wesleyribeiro123
Posts Avatar
#26832
Amigo,
Avaliando aqui novamente tua aplicação, não seria o caso de tentar usar um Hiperlink em teu Botão ao invés de um código VBA?
Hiperlink vc não terá problema de compatibilidade em nenhuma das versões do Excel!!!
Por HFTajra
#26834
Wesley,
Obrigado pelos seus comentários e respostas.
Acho que o problema é da versão 2013 ou até mesmo na compilação / cópia que estou usando. Vou tentar um contato com um representante da Microsoft. Teria alguma contato?
O Unload Userform é dado só na volta para a tela / planilha inicial. Vou testar colocá-lo na macro do botão "ok" amanhã no micro com a versão 2013 que está travando. Depois digo se deu certo ou se continua travando.
Não entendi a sugestão de usar Hiperlink. Como fazer para implementá-la?
Um grande abraço e obrigado novamente,
Haroldo
Avatar do usuário
Por wesleyribeiro123
Posts Avatar
#26835
Haroldo

Brother, a ideia do Hiperlink e criar uma Forma e aplicar nela um Hiperlink para a Aba "Plan2", isto evitaria de ter que digitar código VBA para fazer a transição.
Agora se ao clicar no botão ele for abrir um Form com opções de interação do Usuário a ideia do Hiperlink já não é viavel.
Por HFTajra
#26848
Bom dia Wesley e demais amigos,
Testei a troca do Hide por Unload mas continua travando.
Tudo indica que é um problema da versão 2013. Alguém mais usa essa versão?
Grande abraço a todos,
Haroldo
Avatar do usuário
Por wesleyribeiro123
Posts Avatar
#26874
Haroldo
Boa tarde,

Não sei se é o caso, mas com certeza resolverá teu problema.
Veja meu anexo a solução criada, abaixo um passo a passo bem resumido:
  • Criei uma Forma para definir um HiperLink de transição entre as guias, uma chama "Executar" que nos leva até a Plan2 e outro chama "Voltar" que nos trás de volta a Plan1;
  • No evento Activate da Plan2 eu chamei o Form "Teste" (que representa aqui o teu formulário);
  • O botão "Voltar" pode não ser necessário para tua aplicação, desta forma, utilize o botão de execução do teu Form para retornar, no exemplo o botão que faz este papel é o "Salvar".
Acredito que com estes pequenos ajustes você resolverá teu problema.
Espero ter lhe ajudado.
Você não está autorizado a ver ou baixar esse anexo.
Por HFTajra
#27087
Wesley,
Muito obrigado pela sugestão. Achei fantástica em todos os sentidos. Nunca tinha usado HiperLink, não conhecia o formato xlsb e por aí vai. Até mesmo o design do botão que você utilizou ficou muito bom. Parabéns e obrigado.
Quanto ao problema em si, levei o caso a uns contatos na Microsoft Brasil e parece que o problema é da compilação do Excel instalado por aqui. O problema maior é o congelamento da tela e a digitação um tanto quanto estranha, pois embora a tela fique congelada com a segunda planilha, os dados são armazenados na planilha que está oculta. Eu já havia contornado o problema com reescrevendo a macro com os mesmos comandos, apenas armazenando o código fora do botão "Ok" do formulário.
A solução com HiperLink que você propôs é perfeita, mas a planilha 2 inicialmente teria que estar oculta.
Mais uma vez obrigado e um grande abraço,
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