Signaler

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

Posez votre question pierre64 - Dernière réponse le 13 juin 2017 à 10:15 par yg_be
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 
Utile
+0
plus moins
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.
Donnez votre avis
Utile
+0
plus moins
peux-tu partager ton fichier?
en passant, je remarque que tu as interverti hauteurs et largeurs dans ton code.
Donnez votre avis
Utile
+0
plus moins
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 5904Messages postés dimanche 13 juin 2010Date d'inscription 22 juin 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
Répondre
pierre64200 21Messages 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
Répondre
Patrice33740 5904Messages postés dimanche 13 juin 2010Date d'inscription 22 juin 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
.
Répondre
pierre64200 21Messages 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
Répondre
Donnez votre avis
Utile
+0
plus moins
Voici le fichier
http://www.cjoint.com/c/GFmiPrFZFAH

Merci pour votre aide
Patrice33740 5904Messages postés dimanche 13 juin 2010Date d'inscription 22 juin 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 !
Répondre
pierre64200 21Messages 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"
Répondre
yg_be 2544Messages postés lundi 9 juin 2008Date d'inscription 21 juin 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?
Répondre
pierre64200 21Messages 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
Répondre
pierre64200 21Messages 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
Répondre
Donnez votre avis
Utile
+0
plus moins
suggestion:
    UserForm1.Image1.AutoSize = True
   UserForm1.Width = UserForm1.Image1.Width
    UserForm1.Height = UserForm1.Image1.Height
pierre64200 21Messages 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
Répondre
Donnez votre avis
Utile
+0
plus moins
pour info, Picture.Height n'est pas exprimé dans la même unité que Image1.Height et que UserForm1.Height.
d'où ton soucis.
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !