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
Avatar do usuário
Por JCabral
Avatar
#20552
Boa tarde

Encontrei um código em VBA que após escolha de um nome mostra a respetiva fotografia. Algo parecido à vinculação de imagens em função de uma célula.

Contudo precisava de fazer isso mas com uma ComboBox, com a seguinte restrição, a ComboBox não estará inserida numa "Userform" ou seja o layout é o que esta no exemplo que anexo.

Obrigado pela Ajuda
Jorge Cabral
Você não está autorizado a ver ou baixar esse anexo.
Avatar do usuário
Por gfranco
Avatar
#20554
Boa tarde.
Veja se atende.
Você não está autorizado a ver ou baixar esse anexo.
Avatar do usuário
Por JCabral
Avatar
#20555
gfranco
Obrigado pela sua sugestão , mas não era isso que eu pretendia.
Deixei a parte à esquerda da linha vermelha só para mostar o que pretendia que fosse feito, ou seja que a escolha seja feita na ComboBox e seja mostrada a fotografia sem recorrer a funções do excel, só com código VBA.

Obrigado
Jorge Cabral
Por osvaldomp
#20569
Olá, Jorge.
Veja se ajuda.

1. copie o código abaixo
2. ative a planilha "Escolha" / Modo de Design / clique com o direito sobre a Combo / Propriedades
3. na propriedade ListFillRange digite (ou cole) Images!A2:A5
4. clique novamente com o direito sobre a Combo / Exibir código / no módulo da planilha deverá aparecer algo assim
Private Sub ComboBox1_Change()

End Sub

5. selecione as linhas que aparecerem e cole o código copiado (Ctrl+V)
6. desative o Modo de Design, feche a janela Propriedades e teste
Código: Selecionar todos
Private Sub ComboBox1_Change()
 Dim foto As Shape
  Application.ScreenUpdating = False
   On Error Resume Next
   ActiveSheet.Shapes("MeImagem").Delete
   On Error GoTo 0
    For Each foto In Sheets("Images").Shapes
     If foto.Name = ComboBox1.Text Then
      Sheets("Images").Shapes(foto.Name).Copy
      ActiveSheet.[C2].PasteSpecial
      Exit For
     End If
    Next foto
     Selection.Name = "MeImagem"
     Selection.ShapeRange.Left = 130 'ActiveCell.Left
     Selection.ShapeRange.Top = 20 'ActiveCell.Top
     [E3].Select
   Application.ScreenUpdating = True
End Sub
obs. aproveitei alguns comandos do seu código WS_Change; a moça da foto 3 merece um nome mais adequado ... ;)
Editado pela última vez por osvaldomp em 26 Fev 2017 às 17:07, em um total de 1 vez.
Avatar do usuário
Por JCabral
Avatar
#20577
Osvaldo

TOP, muito obrigado pela ajuda esta a funcionar impecavelmente.

PS: Aceito sugestões para o nome da moça da foto 3... :lol:
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