Redimensionnement d'un UserForm pour image

Résolu
pierre64 -  
yg_be Messages postés 23437 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

6 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    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
  2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    peux-tu partager ton fichier?
    en passant, je remarque que tu as interverti hauteurs et largeurs dans ton code.
    0
  3. 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
    1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
       
      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
    2. pierre64200 Messages postés 22 Statut Membre
       
      Effectivement mais je n'arrive pas à télécharge le fichier sur le forum
      0
    3. pierre64200 Messages postés 22 Statut Membre
       
      Le fichier est en ligne http://www.cjoint.com/c/GFmiPrFZFAH
      0
  4. pierre64200 Messages postés 22 Statut Membre
     
    Voici le fichier
    http://www.cjoint.com/c/GFmiPrFZFAH

    Merci pour votre aide
    0
    1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
       
      Il faudrait fournir un fichier avec un minimum de données pour qu'il soit fonctionnel !
      0
    2. pierre64200 Messages postés 22 Statut Membre
       
      Il y a des données dans la feuille "Base de données"
      0
    3. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      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
    4. pierre64200 Messages postés 22 Statut Membre
       
      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
    5. pierre64200 Messages postés 22 Statut Membre
       

      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    suggestion:
        UserForm1.Image1.AutoSize = True
       UserForm1.Width = UserForm1.Image1.Width
        UserForm1.Height = UserForm1.Image1.Height
    0
    1. pierre64200 Messages postés 22 Statut Membre
       
      C'est parfait c'est exactement ca !
      Merci beaucoup
      0
  7. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    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