Image dans fichier excel sur control userform image

JessCH

XLDnaute Nouveau
Bonjour à vous tous,

Je viens une fois de plus vers vous car toujours bien servi ici :p:p

Voilà, j'ai un tableau excel avec des données de contact, dans ce fichier, j'ai un userform pour faire une recherche qui indique les données principales du contact. Après, sur ce userform, j'ai un bouton qui ouvre un 2ème userform pour voir les détails en profondeur.

Dans l'ensemble j'arrive a trouver mon bonheur avec 1 ou 2 bouquins et aussi beaucoup sur des forums, mais maintenant, j'ai un souci avec des images.
Je aimerais bien que dans ce 2ème userform s'affiche des images qui se trouvent dans une autre feuille du fichier excel toujours en se référant au tableau de la feuille 1. Dans la colonne "AY"

D'avance, je vous remercie.

P.S. Dans le fichier, j'ai mis 4 images, 2 tout simplement importée et 2 autres dans des contrôles images... je ne sais pas quelle est la meilleures possibilité.

Jess
 

Fichiers joints

Argos88620

XLDnaute Junior
Bonsoir,
Il faut enregistrer les images sur le DD
puis les charger dans la propriété Picture de tes controls image
de la même manière que celles qui sont sur la feuille ("Forms.Image.1";"")
Slts
 
Dernière édition:

Argos88620

XLDnaute Junior
autrement pour les 2 premières ne fonctionne pas avec 3 et 4
si tu veux les charger directement dans UserForm_Initialize()

UserForm2.Image1.Picture = Sheets("IMAGES").Image1.Picture
UserForm2.Image2.Picture = Sheets("IMAGES").Image2.Picture

pour les 2 autres il faut également les insérer dans un controle image
 

JessCH

XLDnaute Nouveau
Salut Argos88620,
Merci pour ta réponse qui s'approche de la bonne voie, mais cela ne me dit pas comment l'Userform va chercher la bonne image selon mon contact du tableau de la feuille BD
 

Argos88620

XLDnaute Junior
Bonjour JessCH,
Un exemple tiré des modèles de M. Jacques BOISGONTIER
http://boisgontierjacques.free.fr/pages_site/lesimages.htm#InsertionImage

Partie : Affichage d'une image externe dans un formulaire - Version simplifiée
Les images doivent être placées dans le répertoire ou se trouve le fichier excel et
nommées comme dan la colonne AY
Tu trouveras sans doute ton bonheur dans tous ses exemples .

VB:
Private Sub ListBox1_Click()

  Set result = Rng.Find(what:=Me.ListBox1, LookIn:=xlValues, lookat:=xlWhole)
  If Not result Is Nothing Then
 

    Me.TextBox2 = result.Offset(, 0)
    Me.TextBox3 = result.Offset(, 1)
    Me.TextBox4 = result.Offset(, 2)
    Me.TextBox5 = result.Offset(, 3)
    Me.TextBox6 = result.Offset(, 4)
    Me.TextBox7 = result.Offset(, 5)
    Me.TextBox8 = result.Offset(, 6)
    Me.TextBox9 = result.Offset(, 7)
    Me.TextBox10 = result.Offset(, 8)


    répertoireImage = ThisWorkbook.Path
    NomImage = result.Offset(, 50)
    UserForm2.Image1.PictureSizeMode = fmPictureSizeModeStretch
    UserForm2.Image1.Picture = LoadPicture(répertoireImage & "\" & NomImage & ".jpg")
  
   End If
 

End Sub
Slts
 

Fichiers joints

JessCH

XLDnaute Nouveau
Re, et merci de prendre de ton temps.
Oui, je connais le site de http://boisgontierjacques.free.fr/pages_site/lesimages.htm#InsertionImage

C'est d'ailleurs là que j'ai trouvé ce code et mis à ma sauce.
VB:
'Images------------------------------
Me.TextBox52 = c.Offset(, 52)
Me.TextBox53 = c.Offset(, 53)
Me.TextBox54 = c.Offset(, 54)
Me.TextBox55 = c.Offset(, 55)


Dim f

Set f = Sheets("IMAGES")
On Error GoTo fin
  Set s = Sheets("IMAGES").Shapes(Me.TextBox52.Value)
  s.CopyPicture
  f.ChartObjects.Add(0, 0, s.Width, s.Height).Chart.Paste
  f.ChartObjects(1).Chart.Export Filename:="monimage.jpg"
  f.Shapes(f.Shapes.Count).Delete
  Me.Image1.PictureSizeMode = fmPictureSizeModeZoom
  Me.Image1.Picture = LoadPicture("monimage.jpg")
  Kill "monimage.jpg"
  Me.Image1.Visible = True
fin:
J'ai ajouté 4 TextBox (52; 53; 54; 55) sur les controles Image qui seront mis en mode Visible.False. Comme ça j'ai un texte qui est cherché dans la BD et ensuite utilisé pour mes images... :oops: Voir mon fichier joint. C'est plus clair (j'ai uniquement complété M. AAAAA pour faire vite ;)

Il y a peut-être mieux à faire. Je vais analyser ton code et voir si je peux simplifier le miens

Merci pour ton aide
 

Fichiers joints

Discussions similaires


Haut Bas