Insérer une image userform sans passer par le chemin

Bonjour,

Je souhaiterai savoir si il est possible d'insérer des images dans un userform SANS passer par le chemin, c'est à dire stocker mon image dans une feuille excel et pouvoir l'afficher dans mon userform. Cela me permettrai de déplacer mon fichier excel sans à avoir à transporter mes images avec...

Je vous remercie pour votre aide !

Bonjour,

Il suffit de placer les images dans le même répertoire que le fichier.

Exemple : C:\Mes documents\Excel\Mon Fichier\Fichier.xls _Mes Images

Voir exemple sur fichier joint

Amicalement

Pierrot

478sim-vba-cp01.xlsm (83.18 Ko)

Merci de ta réponse Pierre,

Mais je ne vois pas d'image sur ton fichier, c'est bien mon problème. Etant donné que tu ne m'as envoyé que le fichier xlsm je n'ai pas accès aux images qui sont enregistré sur ton ordinateur. C'est ce que je voudrais éviter.

Pardon j'ai eu un bug avec mon excel.. Je vois les images maintenant je vais essayer de comprendre

ça fonctionne pas, pour que je puisse visualiser les photos dans le userform, elles doivent être dans le même répertoire comme tu précise et à partir de là je donne le chemin. C'est exactement ce que je veux éviter, en fait je voudrais pouvoir accéder à une image sans donner son chemin ni son chemin raccourci. L'image que je veux afficher ne doit pas être en .jpg dans mon répertoire, je voudrais qu'elle se trouve dans un endroit accessible par n'importe qui ayant mon fichier excel, mais qui ne possède pas tout mon répertoire..

Bonjour,

mes photos sont stockées dans le répertoire suivant

et le code qui va avec

 Répertoire = "C:\Documents\Mes documents\Foot"    
 If Dir(Répertoire & "\" & Me.TBNom & ".jpg") <> "" Then

    Me.Image1.Picture = LoadPicture(Répertoire & "\" & Me.TBNom & ".jpg")
  Else
    Me.Image1.Picture = LoadPicture() 

Tu peux m'envoyer deux photos et un exemple de fichier, même une photo de chat ou d'oiseau

je te créerai un répertoire

Pierrot

Salut,

J'ai une autre version pour toi,

Les photos sont collées dans une feuille excel

Regarde ce que tu peux faire avec cet exemple

j'ai du supprimer des photos (fichier plus de 300 Ko)

Amicalement

Pierrot

630sim-vba-cp03.xlsm (248.43 Ko)

Merci beaucoup Pierrot, la deuxième solution est exactement ce que je recherche ! Par contre est ce que tu pourrais me commenter ton code ? Je comprend pas bien tout ..

Private Sub UserForm_Initialize()
  Set f = Sheets("photos")
  For Each s In f.Shapes
    Me.ComboBox1.AddItem s.Name
  Next
End Sub
Private Sub ComboBox1_Change()
  Set s = f.Shapes(CStr(Me.ComboBox1))
  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"
End Sub

bonjour,

Combien d'images et combien de ko ? (environ)

A+

7 images, avec un total de à peine 100ko

Pourquoi ne pas les charger en permanence toutes les 7 dans 7 Controles images (invisibles) et les rendre visibles à la demande ?

A+

456classeurimage.xlsm (37.38 Ko)

C'est ce que je fais, mais pour charger les controles images j'ai besoin du chemin de mon image, et c'est justement ce que je veux éviter.

Merci de t'intéresser à mon problème en tout cas

Ou est-ce que tu as vu que j'ai besoin d'un chemin ?

Une fois que les images sont dans le classeur elles y restent !

A+

261classeurimage.xlsm (37.38 Ko)

Ha oui d'accord !! Je vois, je prendrais 7 controles images différents et je met une image fixe dans chacun ! C'est une bonne idée, merci ! J'attend de l'explication de Pierrot, mais ta solution me convient également

Bonjour, sim_vba , galopin01

Je suis désolé pour expliquer le code, je l'ai copié tel quel sur ce forum, il fonctionne, c'est tout ce que je peux dire

Amicalement

Pierrot

Bonjour,

D'accord pas de soucis pierrot, je vais prendre la méthode de galopin, au moins je la comprend

Merci à vous deux en tout cas !

Rechercher des sujets similaires à "inserer image userform passer chemin"