Intégrer une image dans Userform...

Fermé
pompom74 Messages postés 9 Date d'inscription mercredi 21 décembre 2011 Statut Membre Dernière intervention 18 septembre 2016 - Modifié par pompom74 le 17/09/2016 à 21:48
pompom74 Messages postés 9 Date d'inscription mercredi 21 décembre 2011 Statut Membre Dernière intervention 18 septembre 2016 - 18 sept. 2016 à 15:06
Bonjour,

J'essaye d'intégrer une image dans un userform (gestion de fiches), mais malgré plusieurs tentatives de scripts divers et variés je n'y arrive pas. J'ai emprunté ce code (sur ce forum) et je l'ai adapté (car apparemment le Mac avec Excel 2011 ne reconnaît pas "loadPicture"). J'obtiens bien le message d'erreur, ce qui devrait prouver que ça va jusque là, mais point d'image.
Dans un userform j'ai une textbox1 dans laquelle j'ai entré le nom de l'image (sans l'extension) et un contrôle "Image1". Comme je suis un bidouilleur pas toujours bien éclairé, je vois bien qu'il n'est mentionné nulle part que l'image doit aller dans le contrôle "Image1" mais je ne sais pas quoi ni où le mettre :
Private Sub TextBox1_Change()
Dim chemin As String
chemin = TextBox1.Value
On Error GoTo pasdimage
ActiveSheet.Pictures.Insert ("/Volumes/HD/images/" & chemin & ".jpg")
pasdimage : MsgBox "photo non disponible"
End Sub

Le dossier "images" se trouve au même niveau que le fichier Excel.
Une idée ?

Merci

A voir également:

5 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
17 sept. 2016 à 21:58
0
pompom74 Messages postés 9 Date d'inscription mercredi 21 décembre 2011 Statut Membre Dernière intervention 18 septembre 2016
18 sept. 2016 à 09:13
Bonjour Le Pivert,

Merci pour ta réponse. La page a l'air intéressante.
Apparemment le Mac+cette version d'Excel 2011 ont un problème avec DIR. En effet j'ai un message d'erreur "68" (device unavailable) alors que le fichier est r/w. J'ai bien trouvé une astuce sur :
https://answers.microsoft.com/en-us/msoffice/forum/msoffice_excel-mso_mac/lets-talk-about-mac-excel-2011-bugs/a3653864-e889-4413-aab0-ac118c03d65e
J'ai mis la fonction dirfile juste au dessus:
Function dirfile(ByVal input_file As String) As Boolean
Dim tmp
dirfile = False
On Error GoTo dirfile_err
tmp = Dir(input_file)
On Error GoTo 0
dirfile = True
dirfile_err:
End Function

...mais je ne sais pas appeler la fonction "dirfile" dans cette macro (je ne suis pas programmeur) .
Private Sub CommandButton5_Click()
Dim Fichier As String
Fichier = "/Users/ATC/Desktop/fleur.jpg"
'Vérifie si le fichier existe.
If Dir(Fichier) <> "" Then
'si le fichier existe, il est chargé pour visualisation.
Image1.Picture = ActiveSheet.Pictures.Insert(Fichier)
Else
'Sinon, affiche aucune image.
Image1.Picture = ActiveSheet.Pictures.Insert("")
End If
End Sub


Encore une idée ?

Merci
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729 > pompom74 Messages postés 9 Date d'inscription mercredi 21 décembre 2011 Statut Membre Dernière intervention 18 septembre 2016
Modifié par cs_Le Pivert le 18/09/2016 à 10:59
tout simplement comme ceci sans passer par Dir:

Private Sub CommandButton5_Click()
    Dim Fichier As String
    Fichier = "Chemin complet/fleur.jpg"
    If Fichier = "" Then
Exit Sub
Else
 'si le fichier existe, il est chargé pour visualisation.
        Image1.Picture = ActiveSheet.Pictures.Insert(Fichier)
'ou
        'Image1.Picture = LoadPicture(Fichier)
      End If
End Sub
0
pompom74 Messages postés 9 Date d'inscription mercredi 21 décembre 2011 Statut Membre Dernière intervention 18 septembre 2016 > cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024
18 sept. 2016 à 11:25
Merci...
Ça aurait dû marcher... mais si je fais :
- avec "LoadPicture" j'ai une erreur "compile error : sub or function not defined"
- avec "ActiveSheet.Pictures.Insert" j'ai une erreur "runtime error 1004 : unable to get the Insert property of the Pictures class"

C'est mal parti...
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
18 sept. 2016 à 11:31
0
pompom74 Messages postés 9 Date d'inscription mercredi 21 décembre 2011 Statut Membre Dernière intervention 18 septembre 2016
18 sept. 2016 à 11:57
Merci...
Ce coup-ci je n'ai plus d'erreur, mais il ne se produit rien ! Preview ne se lance même pas. J'ai essayé en lançant Preview avant, mais rien non plus.

Encore merci
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
18 sept. 2016 à 14:09
Voici différentes méthodes, qui ne concernent que l'insertion d'une image dans une Feuille:

https://excel.developpez.com/faq/?page=Image#InsertionImage
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pompom74 Messages postés 9 Date d'inscription mercredi 21 décembre 2011 Statut Membre Dernière intervention 18 septembre 2016
18 sept. 2016 à 15:06
Merci Pivert.

En effet, ça marche, mais l'insertion de l'image s'effectue dans la feuille et non dans le UserForm : c'est déjà un progrès !

J'ai essayé :
Set Emplacement = Me.Image1
donne l'erreur "type mismatch"
puis :
Set Emplacement = Image1.Picture
donne l'erreur "Object variable or With block variable not set"
enfin :
Set Emplacement = UserForm1.Image1
donne l'erreur "type mismatch"

J'arrive aux limites de mes connaissances (bien faibles)
0