Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Não consigo inserir imagens de acordo com a escolha de multiplos CheckBox - vba excel

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Não consigo inserir imagens de acordo com a escolha de multiplos CheckBox - vba excel

Mensagem por Reinaldo »

Bem, se entendi, creio que o modelo do colga SRobles ja fazia uma boa parte do que espera.
Contudo, vamos por partes:
Se a combo1 com valor 2 e checkbox 1,3 e 4 selecionados a imagem 4 seria carregada na caixa de imagem 2
Veja se vai de encontro ao desejado no descrito acima:

Código: Selecionar todos

Private Sub CommandButton1_Click()

Dim sPath As String
'Define a pasta imagens no mesmo diretoria da planilha
sPath = ThisWorkbook.Path & "\Imagens"

Dim ctl As Control
    'Limpamos todos os controles Image
    For Each ctl In Me.Controls
        If TypeName(ctl) = "Image" Then
            ctl.Picture = LoadPicture("")
        End If
    Next
    'Se o checkbox4 e o checkbox5 estiverem selecionados
    If CheckBox1.Value = True And CheckBox3.Value = True And CheckBox4.Value = True And ComboBox1.Value = 2 Then
        'figura = "C:\Imagens\" & cabo & ComboBox1.Value & ".ico"
        figura = sPath & "\cabo4.ico"
                Me.Image2.Picture = LoadPicture(figura)
    Else
    
    End If

End Sub


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
LaerteB
Colaborador
Colaborador
Mensagens: 96
Registrado em: Qui Out 19, 2017 8:20 am

Re: Não consigo inserir imagens de acordo com a escolha de multiplos CheckBox - vba excel

Mensagem por LaerteB »

Reinaldo, boa noite!

Primeiramente quero agradecer as respostas que tu e o colega Srobles enviaram a mim; bem vamos ao que você colocou nesta resposta, foi alterado o endereço da imagem (figura = sPath & "\cabo4.ico") foi muito bom, e incluiu o combobox1 na seleção.

Só para esclarecer no meu projeto tem para cada caixa de imagem duas Label diferentes (se referindo a um número específico de cada combobox - as Label terão o Caption como números).

Mas no meu modelo pode se observar que tentei colocar o combobox atrelado a imagem, para que na seleção de um número, já chamaria a caixa de imagem apropriada (Label = combobox = caixa de imagem), só que devo ter errado ou faltou algo nos códigos (pois não funciona).

Fiz isso para reduzir as muitas combinações que teriam, pois no meu projeto tem muito mais caixas de imagem e mais de 30 imagens de "cabos" (cabos seriam um exemplo) e também poderá ocorrer ter 1 ou mais caixas de imagem com a mesma figura (então não poderá, neste momento, ter o código de limpar todos os controles Image; somente quando sair da aplicação poderá ocorrer) qualquer ajuda de vocês neste projeto é muito bem vinda.

Acho que agora coloquei melhor o funcionamento, ficando no aguardo da responstas de vocês, e estou muito grato por estar sempre aprendendo aqui com todos daqui deste Fórum :) .

Abs. Laerte.


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Não consigo inserir imagens de acordo com a escolha de multiplos CheckBox - vba excel

Mensagem por Reinaldo »

Creio ainda não haver entendido a dinâmica da demanda, mas...
então não poderá, neste momento, ter o código de limpar todos os controles Image;
O objetivo de colocar a "limpeza" das caixas de imagem, e para evitar a sobreposição de imagens ao se clicar mais de uma vez no btn "OK". Se não quiser, e so eliminar da rotina.
para cada caixa de imagem duas Label diferentes
Não detectei/notei Label e seu modelo.
colocar o combobox atrelado a imagem
Seria algo =/- assim: Me.Controls("Image" & ComboBox1.Value).Picture

Código: Selecionar todos

Private Sub CommandButton1_Click()
Dim sPath As String
'Define a pasta imagens no mesmo diretoria da planilha
sPath = ThisWorkbook.Path & "\Imagens"
    
If CheckBox1.Value = True And CheckBox3.Value = True And CheckBox4.Value = True Then
    'figura = "C:\Imagens\" & cabo & ComboBox1.Value & ".ico"
    figura = sPath & "\cabo4.ico"
    Me.Controls("Image" & ComboBox1.Value).Picture = LoadPicture(figura)
End If
End Sub


Avatar do usuário
LaerteB
Colaborador
Colaborador
Mensagens: 96
Registrado em: Qui Out 19, 2017 8:20 am

Re: Não consigo inserir imagens de acordo com a escolha de multiplos CheckBox - vba excel

Mensagem por LaerteB »

Reinaldo, bom dia!

Bem, eu quis dizer que a "limpeza" das caixas de imagem serão realizadas somente quando sair do aplicativo (esses códigos da "limpeza" vou colocar depois, pois o meu projeto contém outros comandos e quando sair deste será realizado a "limpeza"), e neste caso não teria problema da sobreposição, pelo fato que a pessoa pode até trocar de imagem caso seja necessário (não teria problema), mas não sei se a sobreposição poderia acarretar algum erro.

No fato de a imagem conter duas Label diferentes e não constar no modelo, é que primeiramente coloquei somente um combobox (neste modelo), somente para exemplificar o que estava querendo realizar, mas no meu projeto terá essas Label e dois combobox (por causa que cada combobox terá numeração diferente).

Em relação ao combobox estar atrelado a imagem, o seu código se encaixaria bem, mas testei aqui e não está encontrando o caminho e no depurar seleciona "Me.Controls("Image" & ComboBox1.Value).Picture = LoadPicture(figura)", tentei colocar os comandos "ChDrive "C:" e ChDir "C:\Imagens\" " para ver se resolvia, mas não fez nenhum efeito :?: .

Laerte :) .


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Não consigo inserir imagens de acordo com a escolha de multiplos CheckBox - vba excel

Mensagem por Reinaldo »

Os comandos que mencionou, são utilizados para não informar o caminho completo do arquivo/imagem.

Ao utilizar por Exemplo; "C:\Temp\suaimagem.ico(ou jpg, ou...) não há a necessidade de alterar o diretório base.

Se não está encontrando o caminho, com toda certeza a indicação do mesmo está equivocada.
Verifique/altere a localização do diretório Imagens

Na proposta indicação do caminho e formada por 2 passos:
Primeiro --> sPath = ThisWorkbook.Path & "\Imagens" --> Aqui indica que será utilizado o mesmo caminho da planilha acrescido do diretório Imagens (repare que o diretório de imagens deve estar, nessa solução, no mesmo diretório em que está sua planilha.
Supondo que sua planilha esteja no diretorio C:\Temp então SPath será igual à: C:\Temp\Imagens

Segundo --> figura = sPath & "\cabo4.ico" --> acrescenta na string anterior o nome e extensão do arquivo a ser utilizado, assim figura assumirá: C:\Temp\Imagens\cabo4.ico


Avatar do usuário
LaerteB
Colaborador
Colaborador
Mensagens: 96
Registrado em: Qui Out 19, 2017 8:20 am

Re: Não consigo inserir imagens de acordo com a escolha de multiplos CheckBox - vba excel

Mensagem por LaerteB »

Reinaldo :) !

Agradeço sua resposta; sim eu tinha colocado no mesmo diretório a planilha, mas verifiquei que não tinha criado uma pasta para as imagens ( :oops: ).

Agora criei a pasta e está funcionando :D .

Obrigado por me lembrar como funciona os comandos que mencionei, eu já havia aprendido, mas não me recordava direito como era utilizado e pensei que poderia usá-los neste "erro" :oops: .

Quero agradecer a você e ao Srobles :D por terem me ajudado; com este aprendizado adquiri maior conhecimento.

Agora vou deixar os comandos para este modelo, para que outros que necessitam possam utilizar nos seus projetos, segue abaixo:

Código: Selecionar todos

Private Sub CommandButton1_Click()

Dim sPath As String


'Define a pasta imagens no mesmo diretoria da planilha
sPath = ThisWorkbook.Path & "\Imagens"

If CheckBox1.Value = True And CheckBox3.Value = True And CheckBox4.Value = True Then
  
    figura = sPath & "\cabo4.ico"
    Me.Controls("Image" & ComboBox1.Value).Picture = LoadPicture(figura)
End If

End Sub
PS: por gentileza poderiam me informar como posso colocar estes comandos na janela em "branco" (Código: Selecionar todos) que normalmente vocês utilizam.(obrigado).

Abs Laerte.
Editado pela última vez por LaerteB em Qua Abr 03, 2019 11:16 am, em um total de 1 vez.


srobles
Jedi
Jedi
Mensagens: 805
Registrado em: Qua Mai 06, 2015 7:39 pm

Re: Não consigo inserir imagens de acordo com a escolha de multiplos CheckBox - vba excel

Mensagem por srobles »

LaerteB,

Que bom que chegou á um resultado satisfatório amigo! Graças ao empenho do amigo Reinaldo, tudo correu bem. Confesso que ainda estou tentando imaginar o seu cenário :oops: .

Para exibir exemplo de código, utilize a Tag [ code ] insira o código e finalize com [ /code ] (sem espaços).

Abs


Avatar do usuário
LaerteB
Colaborador
Colaborador
Mensagens: 96
Registrado em: Qui Out 19, 2017 8:20 am

Re: Não consigo inserir imagens de acordo com a escolha de multiplos CheckBox - vba excel

Mensagem por LaerteB »

Srobles, boa tarde!

Obrigado por me informar como exibir exemplo de código, agora será mais fácil :) .

Sim o Reinaldo me ajudou muito, fico muito grato, mas tu também e agradeço muito mesmo; agora o meu cenário :oops: , será muito trabalhoso por ter muitas combinações possíveis, e terá muitos códigos (mais de 30 figuras e mais de mais de 30 caixas de imagem), ainda bem que com esse código que o Reinaldo me informou vai reduzir (senão nem imagino como seria, possivelmente teria que refazer esta parte do meu projeto).

Bem, fico muito grato por tudo que fizeram, aumentaram o meu aprendizado e acho que de muitos que tenham o mesmo caso ou parecido.

:D Abs Laerte.


Avatar do usuário
LaerteB
Colaborador
Colaborador
Mensagens: 96
Registrado em: Qui Out 19, 2017 8:20 am

Re: Não consigo inserir imagens de acordo com a escolha de multiplos CheckBox - vba excel

Mensagem por LaerteB »

Pessoal!

Não estou conseguindo colocar ao lado do título [RESOLVIDO], já tentei e não deu certo, por gentileza me esclareçam como fazê-lo (cliquei no botão responder e no enviar e não aparece o [RESOLVIDO] que inseri no título.

obrigado Laerte :) .


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder