Redimensionnement d'un UserForm pour image

Résolu
pierre64 -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -
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


A voir également:

6 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
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.
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
peux-tu partager ton fichier?
en passant, je remarque que tu as interverti hauteurs et largeurs dans ton code.
0
pierre64
 
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 !
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
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
0
pierre64200 Messages postés 21 Date d'inscription   Statut Membre Dernière intervention  
 
Effectivement mais je n'arrive pas à télécharge le fichier sur le forum
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Déposes le fichier avec des commentaires explicatifs sur
https://mon-partage.fr/ ou sur https://www.cjoint.com/
et mets le lien obtenu dans ton prochain message.

Tuto : Comment utiliser C.joint.fr
.
0
pierre64200 Messages postés 21 Date d'inscription   Statut Membre Dernière intervention  
 
Le fichier est en ligne http://www.cjoint.com/c/GFmiPrFZFAH
0
pierre64200 Messages postés 21 Date d'inscription   Statut Membre Dernière intervention  
 
Voici le fichier
http://www.cjoint.com/c/GFmiPrFZFAH

Merci pour votre aide
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Il faudrait fournir un fichier avec un minimum de données pour qu'il soit fonctionnel !
0
pierre64200 Messages postés 21 Date d'inscription   Statut Membre Dernière intervention  
 
Il y a des données dans la feuille "Base de données"
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
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?
0
pierre64200 Messages postés 21 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
pierre64200 Messages postés 21 Date d'inscription   Statut Membre Dernière intervention  
 

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
0

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

Posez votre question
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
suggestion:
    UserForm1.Image1.AutoSize = True
   UserForm1.Width = UserForm1.Image1.Width
    UserForm1.Height = UserForm1.Image1.Height
0
pierre64200 Messages postés 21 Date d'inscription   Statut Membre Dernière intervention  
 
C'est parfait c'est exactement ca !
Merci beaucoup
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
pour info, Picture.Height n'est pas exprimé dans la même unité que Image1.Height et que UserForm1.Height.
d'où ton soucis.
0