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
 

Pièces jointes

  • TEST.xlsm
    819.1 KB · Affichages: 23

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
 

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
 

Pièces jointes

  • TEST.xlsm
    824 KB · Affichages: 40

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
 

Pièces jointes

  • TEST.xlsm
    75.4 KB · Affichages: 63

Discussions similaires

Réponses
5
Affichages
271

Statistiques des forums

Discussions
315 080
Messages
2 116 020
Membres
112 637
dernier inscrit
pseudoinconnu