Redimensionnement d'un UserForm pour image [Résolu]

pierre64 - 9 juin 2017 à 17:00 - Dernière réponse : yg_be 4175 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 16 décembre 2017 Dernière intervention
- 13 juin 2017 à 10:15
Bonjour,

Je vous écris, car j'aurais besoin d'un petit renseignement.

J'aurais besoin que mon UserForm1 et mon Image1 se mettent aux dimensions de l'image que je veux importer.

Je vous joins la partie de code que j'ai essayé de faire, mais qui ne fonctionne pas, car l'Userform devient énorme et l'Image1 reste petit.

UserForm1.Image1.Picture = LoadPicture("C:\Users\9503923B\Desktop\Image ligne\" & Sheets("Recherche").Range("D7").Value & ".JPG")
UserForm1.Image1.Width = UserForm1.Image1.Picture.Height
UserForm1.Image1.Height = UserForm1.Image1.Picture.Width
UserForm1.Show


En vous remerciant par avance

Pierre


Afficher la suite 

16 réponses

Répondre au sujet
yg_be 4175 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 16 décembre 2017 Dernière intervention - 10 juin 2017 à 12:11
0
Utile
bonjour, pour découvrir comment faire, je te suggère d’enregistrer une macro pendant que tu fais les manipulations à la main, puis d'examiner le code VBA de la macro.
Commenter la réponse de yg_be
yg_be 4175 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 16 décembre 2017 Dernière intervention - Modifié par yg_be le 10/06/2017 à 12:34
0
Utile
peux-tu partager ton fichier?
en passant, je remarque que tu as interverti hauteurs et largeurs dans ton code.
Commenter la réponse de yg_be
0
Utile
4
Merci pour ta réponse !

Je ne peux pas partager le fichier, car ce sont des données confidentielles.
C'est assez simple, quand je clique sur un bouton, en fonction du contenu d'une cellule, mon UserForm s'ouvre avec seulement une image à l’intérieur. Mais les différentes images ont des tailles différentes. J'aimerais donc que mon Userform s'adapte automatiquement à la taille de l'image appelée.

Merci pour ton aide !
Patrice33740 6339 Messages postés dimanche 13 juin 2010Date d'inscription 16 décembre 2017 Dernière intervention - 12 juin 2017 à 10:04
Bonjour,

« Je ne peux pas partager le fichier, car ce sont des données confidentielles.»
Ça demande juste un petit effort : il suffit de remplacer les données confidentielles par des données génériques !

Patrice
pierre64200 21 Messages postés mardi 8 décembre 2015Date d'inscription 13 juin 2017 Dernière intervention - 12 juin 2017 à 10:17
Effectivement mais je n'arrive pas à télécharge le fichier sur le forum
Patrice33740 6339 Messages postés dimanche 13 juin 2010Date d'inscription 16 décembre 2017 Dernière intervention - 12 juin 2017 à 10:39
Déposes le fichier avec des commentaires explicatifs sur
https://mon-partage.fr/ ou sur http://cjoint.fr/
et mets le lien obtenu dans ton prochain message.

Tuto : Comment utiliser C.joint.fr
.
pierre64200 21 Messages postés mardi 8 décembre 2015Date d'inscription 13 juin 2017 Dernière intervention - 12 juin 2017 à 11:40
Le fichier est en ligne http://www.cjoint.com/c/GFmiPrFZFAH
Commenter la réponse de pierre64
pierre64200 21 Messages postés mardi 8 décembre 2015Date d'inscription 13 juin 2017 Dernière intervention - 12 juin 2017 à 10:42
0
Utile
5
Voici le fichier
http://www.cjoint.com/c/GFmiPrFZFAH

Merci pour votre aide
Patrice33740 6339 Messages postés dimanche 13 juin 2010Date d'inscription 16 décembre 2017 Dernière intervention - 12 juin 2017 à 13:22
Il faudrait fournir un fichier avec un minimum de données pour qu'il soit fonctionnel !
pierre64200 21 Messages postés mardi 8 décembre 2015Date d'inscription 13 juin 2017 Dernière intervention - 12 juin 2017 à 14:46
Il y a des données dans la feuille "Base de données"
yg_be 4175 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 16 décembre 2017 Dernière intervention - 12 juin 2017 à 15:01
je ne vois rien dans UserForm1, et ne vois le code VBA nulle part...
as-tu corrigé l'inversion des hauteurs et largeurs dans ton code?
pierre64200 21 Messages postés mardi 8 décembre 2015Date d'inscription 13 juin 2017 Dernière intervention - 12 juin 2017 à 15:04
Dans Userform c'est normal qu'il n'affiche rien car tu n'as pas l'image qu'il cherche.
Le code VBA est dans le Module 1 dans Visual Basic
J'ai bien échangé les hauteurs et largeurs oui
pierre64200 21 Messages postés mardi 8 décembre 2015Date d'inscription 13 juin 2017 Dernière intervention - 12 juin 2017 à 15:08

Sub MonFiltre()
Application.DisplayAlerts = False
Sheets.Add.Move After:=Sheets(Sheets.Count)
Dim Image As String
Dim a As String
a = Sheets("Recherche").Range("U1")
Sheets(Sheets.Count).Name = "Resultat" + a
Sheets("Resultat" + a).Columns("C").ColumnWidth = 13
Sheets("Resultat" + a).Columns("E").ColumnWidth = 13
Sheets("Resultat" + a).Columns("F").ColumnWidth = 18.5
Sheets("Resultat" + a).Columns("M").ColumnWidth = 15
Sheets("Resultat" + a).Columns("O").ColumnWidth = 11.5
Sheets("Resultat" + a).Columns("S").ColumnWidth = 11.5
Sheets("Resultat" + a).Columns("X").ColumnWidth = 11.2
Sheets("Resultat" + a).Columns("Y").ColumnWidth = 11.2


Sheets("Resultat" + a).Range("A1").CurrentRegion.Offset(1, 0).Clear
Set Mazone = Sheets("Base de données").Range("A1:Y9").CurrentRegion
Mazone.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheets("Recherche").Range("A6:Y7"), CopyToRange:=Sheets("Resultat" + a).Range("A6:Y100")




On Error GoTo errorHandler
UserForm1.Image1.Picture = LoadPicture("C:\Users\9503923B\Desktop\Image ligne\" & Sheets("Recherche").Range("D7").Value & ".JPG")
UserForm1.Width = Application.Width / 2
UserForm1.Height = Application.Height
UserForm1.Image1.Width = Application.Width / 2
UserForm1.Image1.Height = Application.Height
UserForm1.Show vbModeless

errorHandler:

Sheets("Resultat" + a).Select
Sheets("Recherche").Range("U1") = a + 1
Application.DisplayAlerts = True
End Sub


Voici le code entier si tu ne le trouve pas
Commenter la réponse de pierre64200
yg_be 4175 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 16 décembre 2017 Dernière intervention - 12 juin 2017 à 15:36
0
Utile
1
suggestion:
    UserForm1.Image1.AutoSize = True
   UserForm1.Width = UserForm1.Image1.Width
    UserForm1.Height = UserForm1.Image1.Height
pierre64200 21 Messages postés mardi 8 décembre 2015Date d'inscription 13 juin 2017 Dernière intervention - 13 juin 2017 à 08:52
C'est parfait c'est exactement ca !
Merci beaucoup
Commenter la réponse de yg_be
yg_be 4175 Messages postés lundi 9 juin 2008Date d'inscriptionContributeurStatut 16 décembre 2017 Dernière intervention - 13 juin 2017 à 10:15
0
Utile
pour info, Picture.Height n'est pas exprimé dans la même unité que Image1.Height et que UserForm1.Height.
d'où ton soucis.
Commenter la réponse de yg_be