XL 2016 [ RESOLU ] Associer image à combo en VBA

louatt

XLDnaute Junior
Bonjour à tous,

je cherche à faire afficher l'image corresponfant à un appareil dans un userform.

J'ai réussi dans une page Excel mais je n'arrive pas à le faire dans un userform.

Je vous met un classeur en PJ afin que vous m'apportiez votre aide.

Par avance merci.

Cordialement.
 

Pièces jointes

  • Classeur1.xlsm
    376.4 KB · Affichages: 27

louatt

XLDnaute Junior
Re bonsoir à tous j'ai essayé d'adapter un code que j'ai trouvé sur le net en prenant en compte les conseils de Dranreb.

En PJ un projet mais j'ai une erreur à ce niveau
Code:
 IMG_Appareil.Picture = LoadPicture(Photo)

Une aide pour cette erreur ?

Cordialement.
 

Pièces jointes

  • Classeur2.xlsm
    379.4 KB · Affichages: 22

louatt

XLDnaute Junior
Bonjour à tous,

je pensais avoir trouvé la solution hier, sauf que j'ai essayé d'adapter mon classeur essai à mon programme et ça plante.

ça me met en message variable non définie, pourtant dans le code je n'ai changé que l'adresse
Code:
 photo = Sheets("Données").Cells(LigVGP, 22)
Quelqu'un pourrait-il m'aider sur cette erreur?


1.jpg


Par avance je vous remercie.

Cordialement.
 

louatt

XLDnaute Junior
Re bonjour BOISGONTIER,

j'essaye de comprendre mon erreur avec le classeur que tu m'as joint, mais je n'arrive pas à trouver mon erreur.
ou je ne comprends pas c'est que le même code sur mon classeur 2 essai il fonctionne. Seul l'adresse à changée. Malgré ton exemple de classeur je n'arrive pa sà trouver mon erreur.

Merci d'avance pour l'aide.

Cordialement.
 

youky(BJ)

XLDnaute Barbatruc
Bonjour à tous,
Louatt, l'erreur viens qu'il faut déclarer la variable "photo"
Donc 2 solutions possibles
Soit mettre en début de macro Dim photo as string
ou (certain vont rouspéter)
Effacer en tout début de macro pour ne plus être obliger de déclarer chaque fois les variables
Option Explicite

Bruno
 

louatt

XLDnaute Junior
Bonjour YOUKY(Bj),

je te remercie pour ton aide et tes expliquations je comprens maintenant pourquoi ça fonctionnait sur mon classeur car pas de Option Explicite.

je vais continuer de creuser pour faire afficher mes images correspondantes.

Encore merci pour l'aide.

Cordialement.
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Bonsoir,

En utilisant les images internes

Code:
Dim f
Private Sub UserForm_Initialize()
  Set f = Sheets("Appareils")
  i = 0
  For Each c In [Appareils]
    Me.ComboBox1.AddItem c
    For Each s In f.Shapes
       If s.TopLeftCell.Address = c.Offset(, 1).Address Then NomShape = s.Name: Exit For
    Next s
    Me.ComboBox1.List(i, 1) = NomShape
    i = i + 1
  Next c
End Sub

Private Sub ComboBox1_Change()
  s = Me.ComboBox1.Column(1)
  Sheets("APPareils").Shapes(s).CopyPicture xlScreen, xlPicture
  Set image1.Picture = PastePicture(xlPicture)
End Sub

Boisgontier
 

Pièces jointes

  • Copie de Classeur1.xlsm
    240.5 KB · Affichages: 16

Discussions similaires

Statistiques des forums

Discussions
312 177
Messages
2 085 973
Membres
103 073
dernier inscrit
MSCHOE16