Insérer une image dans un Userform [Résolu/Fermé]

Signaler
Messages postés
434
Date d'inscription
mardi 14 mai 2013
Statut
Membre
Dernière intervention
23 septembre 2018
-
Messages postés
434
Date d'inscription
mardi 14 mai 2013
Statut
Membre
Dernière intervention
23 septembre 2018
-
Bonjour,

J'ai créé un userform. Lorsque j'ajoute un contrôle d'image, qu'il soit vide ou que j'y mette une image, j'ai une erreur en lançant le userform : Erreur d'exécution 438 Propriété ou méthode non gérée par cet objet.

Est-ce qu'on doit faire quelque chose de particulier pour l'insertion d'une image?

Je travaille avec Excel 2016.

Merci :)

4 réponses

Messages postés
16173
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
14 juillet 2020
2 998
Bonjour,

Le + sérieux et complet sur les contrôles d'un userform
https://silkyroad.developpez.com/VBA/ControlesUserForm/#LII-K
Messages postés
434
Date d'inscription
mardi 14 mai 2013
Statut
Membre
Dernière intervention
23 septembre 2018
23
Merci, j'avais vu cet article, mais ça ne répond pas à ma question malheureusement.
Messages postés
16173
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
14 juillet 2020
2 998 >
Messages postés
434
Date d'inscription
mardi 14 mai 2013
Statut
Membre
Dernière intervention
23 septembre 2018

???
sans voir le code....

si ca peut éventuellement t'aider, je peux t'envoyer une petite démo toute simple
Messages postés
434
Date d'inscription
mardi 14 mai 2013
Statut
Membre
Dernière intervention
23 septembre 2018
23
Hé bien en fait, je croyais qu'on pouvait seulement ajouter un contrôle Image et choisir l'image dans la propriété Picture. Est-ce possible de fonctionner ainsi?
Messages postés
16173
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
14 juillet 2020
2 998
Bonjour
ci joint petite démo

l'userform
https://mon-partage.fr/f/zMqdl04x/
prévu pour des photos au format JPG mais on peut mixer avec plusieurs formats (me faire signe)

le code de l'usf
Private Sub ComboBox1_Change()
photo = ThisWorkbook.Path & "\" & ComboBox1.Value & ".jpg"
If Dir(photo) = "" Then
Image1.Picture = LoadPicture("")
Else
Image1.Picture = LoadPicture(photo)
End If
End Sub

Private Sub UserForm_Initialize()
lig = 18
While Not IsEmpty(Cells(lig, 1))
ComboBox1.AddItem Cells(lig, 1)
lig = lig + 1
Wend
Image1.PictureSizeMode = fmPictureSizeModeZoom
End Sub


les photos doivent ^tre dans le m^me dossier que l'usf
tu remplaces ma liste ( A18:A24)par le nom de tes photos

en espèrant que ça aura été utile

 Michel
Messages postés
434
Date d'inscription
mardi 14 mai 2013
Statut
Membre
Dernière intervention
23 septembre 2018
23
Il n'est pas possible de seulement insérer un contrôle Image et mettre l'image avec la propriété Picture?
Messages postés
16173
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
14 juillet 2020
2 998 >
Messages postés
434
Date d'inscription
mardi 14 mai 2013
Statut
Membre
Dernière intervention
23 septembre 2018

?????
Messages postés
434
Date d'inscription
mardi 14 mai 2013
Statut
Membre
Dernière intervention
23 septembre 2018
23
Vous savez ce que je veux dire lorsque je parle de contrôle Image??
Messages postés
16173
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
14 juillet 2020
2 998 >
Messages postés
434
Date d'inscription
mardi 14 mai 2013
Statut
Membre
Dernière intervention
23 septembre 2018

bah oui! sinon, je n'aurais pas répondu à la demande....
Messages postés
434
Date d'inscription
mardi 14 mai 2013
Statut
Membre
Dernière intervention
23 septembre 2018
23
Je ne comprends pas pourquoi vous proposez un code si la solution est seulement d'insérer un contrôle Image et ajouter l'image avec la propriété Picture.

J'ai trouvé pourquoi cette méthode ne fonctionne pas avec mon userform. C'est parce que j'ai un code qui redimensionne mon userform pour qu'il soit plein écran et ça semble incompatible avec le contrôle Image. Je devrai changer mon code pour que ça fonctionne.
Messages postés
6861
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
30 juillet 2020
535
Bonjour,

voir ceci:

http://www.homeandlearn.org/load_an_image_into_an_imagebox.html

avec la traduction:

Si vous deviez cliquer sur le bouton gris avec les trois points, vous verrez apparaître une boîte de dialogue vous permettant de choisir une image pour votre image.
Messages postés
434
Date d'inscription
mardi 14 mai 2013
Statut
Membre
Dernière intervention
23 septembre 2018
23
Voici donc la solution que j'ai trouvé pour mon problème.

J'avais ce code pour redimensionner l'userform en plein écran. J'avais un bug lorsque qu'on était rendu à redimensionner les contrôles Image. J'ai donc ajouté le "On Error Resume Next"

Dim ctl As Control
Dim ratiow As String
Dim ratioh As String

ratiow = Application.Width / Me.Width
ratioh = Application.Height / Me.Height
Me.Left = 0
Me.Top = 0
Me.Width = Application.Width
Me.Height = Application.Height
For Each ctl In Me.Controls
On Error Resume Next
ctl.Left = ctl.Left * ratiow
ctl.Top = ctl.Top * ratioh
ctl.Width = ctl.Width * ratiow
ctl.Height = ctl.Height * ratioh
ctl.FontSize = ctl.FontSize * ratioh
Next