Bom dia!
Tenho em um userform, 12 controles do tipo Image, esses controles são carregados com imagens de um diretório local, quando um commandbutton é pressionado. São 12 commandbuttons, cada um que for pressionado carrega um menu de imagens que são mostrados nos controles Image. Ok.
Esse controles Image possui uma rotina no evento click. A rotina é simples, apenas apresenta em uma Label uma string foi associada a imagem. Ok.
Então, toda vez o clico em algum commandbutton, carrego imagens para os Image e eu posso clicar em qualquer Image para ver essa string. Ok.
Agora vem o problema: Toda vez que clico em algum commandbutton, tenho que limpar os Image's, e eu faço isso assim:
For x = 1 to 12
Userform1.Controls("Image" & x &).Picture = Nothing
Next
O problema é que seu eu tiver clicado em algum Image com uma imagem, quando clico em outro commandbutton pra trocar o menu de imagens, aquela imagem que foi clicada continua lá pela metade, dividida com a imagem gerada pelo novo click de outro botão. Entre outras, se eu não clicar em nenhuma imagem, consigo trocar meu menu corretamente, o comando de limpar antes de carregar funciona bem, mas seu eu clicar em alguma Image carregada com qualquer imagem, o comando de limpar não limpa completamente, limpa mais ou menos rsrs.
E o mais "legal" é que, se eu der um alt+tab, tipo tirando o foco do userform, quando eu volto pra ele, tudo fica normal.
Eu uso:
Application.EnableEvents = False
Application.ScreenUpdating = False
Application.EnableEvents = True
Application.ScreenUpdating = True
Outro detalhe importante: Quando eu rodo o código no modo de depurar ele funciona normal e eu consigo ver o resultado certo no userform.
É dificil até de explicar, mas é como se o excel estive falhando na leitura do código no tempo real. Sei lá.
Alguém tem idéia do que pode ser?
At
Postado : 02/10/2013 5:55 am