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 Jore
Posts Avatar
#46987
Olá pessoal,
Outro dia estava aqui pedindo a ajuda de vocês para fazer aparecer uma imagem de tempos em tempos.
Agora pensando em incrementar ainda mais a planilha, eu gostaria de saber se tem como eu mostrar imagens de forma aleatória.
Abaixo segue o meu projeto com uma imagem que aparece a cada 20 segundos e tem mais dois forms com uma imagem cada. Gostaria que fazer aparecer alternando entre as imagens dos forms.


Obrigado e bom final de semana à todos!
Você não está autorizado a ver ou baixar esse anexo.
Por babdallas
#47133
Não esqueça de mudar para os caminhos corretos das imagens na macro.
Código: Selecionar todos
Public Sub ChamarForm()
    Dim lngNumImage         As Long
    Dim vrtImagens()          As Variant
    
    'Altere aqui o caminho das imagens
    vrtImagens = Array("C:\Temp\Imagem1.bmp", "C:\Temp\Imagem2.bmp", "C:\Temp\Imagem3.bmp")
    
    'Nº aleatório entre 1 e nº de imagens
    lngNumImage = Application.WorksheetFunction.RandBetween(1, UBound(vrtImagens))
    
    
    'O código abaixo chama o form de 20 em 20 segundos
    UserForm1.Image1.Picture = LoadPicture(vrtImagens(lngNumImage - 1))
    
     UserForm1.Show ' Mude aqui o nome do seu UserForm
    Application.OnTime Now + TimeValue("00:00:20"), "Chamarform"
    
End Sub
Você não está autorizado a ver ou baixar esse anexo.
Avatar do usuário
Por Jore
Posts Avatar
#47340
Olá babdallas,
Muito Obrigado!
A imagem que fica por último no caminho não aparece nunca!
Fiz uma mudança na ordem dos nomes e a que ficou com o nome por último também não apareceu.
Coloquei uma quarta imagem e a que ficou em quarto também não apareceu.

E se eu fechar a planilha mas deixar o Excel aberto o programa continua chamando as imagens.

Pode me ajudar!
Por babdallas
#47341
Corrigi este trecho
Código: Selecionar todos
'Nº aleatório entre 1 e nº de imagens
    lngNumImage = Application.WorksheetFunction.RandBetween(1, UBound(vrtImagens))
Para
Código: Selecionar todos
'Nº aleatório entre 1 e nº de imagens
    lngNumImage = Application.WorksheetFunction.RandBetween(1, UBound(vrtImagens)+1)
Espero que agora funcione adequadamente.
Você não está autorizado a ver ou baixar esse anexo.
Avatar do usuário
Por Jore
Posts Avatar
#47629
Olá babdallas,
Primeiro me desculpe por demorar em te responder.
Muito Obrigado, você resolveu o problema da última imagem que não aparecia!

Agora só falta resolver o problema que faz o macro continuar rodando mesmo que eu feche a planilha.
Se eu fechar a planilha mas deixar o Excel aberto o programa continua chamando as imagens.

Pode me ajudar!
Por babdallas
#47631
Veja agora. Mude o caminho das figuras.
Você não está autorizado a ver ou baixar esse anexo.
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