XL 2010 Centrer une image dans un Userform

Toubabou

XLDnaute Impliqué
Bonjour à tous,
Dans un UserForm13, j'ai une Image1.
Pourriez-vous me ire comment faire pour avoir Image1 automatiquement centrée dans UserForm13?
Merci beaucoup
Toubabou
 

jmfmarques

XLDnaute Accro
Bonjour
Exactement comme pour centrer une boîte d'allumettes dans un rectangle :
exemple pour le haut : (hauteur_rectangle - hauteur_boite_allumettes)/2
La seule chose qui justifierait vraiment ta question serait peut-être la détermination des dimensions du contenant (ton userform)
Ce sont ses propriétés InsideWidth et InsideHeight
Yapluka
 

Toubabou

XLDnaute Impliqué
Bonjour
Exactement comme pour centrer une boîte d'allumettes dans un rectangle :
exemple pour le haut : (hauteur_rectangle - hauteur_boite_allumettes)/2
La seule chose qui justifierait vraiment ta question serait peut-être la détermination des dimensions du contenant (ton userform)
Ce sont ses propriétés InsideWidth et InsideHeight
Yapluka
Pardon, je ne comprends pas trop ta réponse. Mo je voudrais juste que Image1 soit centré automatiquement
 

jmfmarques

XLDnaute Accro
Hé bien -->> tu mets dans l'évènement Activate de ton userform les instructions nécessaires pour définir la propriété Top et la propriété Left de ton Image.
Je t'en ai indiqué le calcul et souhaite voir ce que tu auras au moins tenté de faire sur cette base. ;)
 

jmfmarques

XLDnaute Accro
Voilà le code que j'ai trouvé

With Me.Image1
.Top = (Me.InsideHeight - Me.Image1.Height) / 1
.Left = (Me.InsideWidth - Me.Image1.Width) / 1
End With

je pense qu'il faut modifier quelque chose pour centrer mon image
Ce que j'ai mis en rouge dans ton code, à comparer à ce que je t'ai dit plus haut (et que tu n'as pas lu ?) :
Exactement comme pour centrer une boîte d'allumettes dans un rectangle :
exemple pour le haut : (hauteur_rectangle - hauteur_boite_allumettes)/2
 

Toubabou

XLDnaute Impliqué
Lis-tu au moins ce que j'écris ? Je n'en ai vraiment pas l'impression, sais-tu ?
VB:
With Me.Image1
        .Top = (Me.InsideHeight - Me.Image1.Height) / 2
        .Left = (Me.InsideWidth - Me.Image1.Width) / 2
    End With
Je pense avoir compris qu'il fallait changer les "1" en "2". Chose que j'ai fait, mais pour ce résultat:
Capture.JPG
 

Toubabou

XLDnaute Impliqué
tu ne montres pas dans quelle procédure évènementielle tu as mis ces instructions ...
As-tu pris la peine, également, de lire ce que j'en ai dit plus haut :
VB:
Option Explicit

Private Sub ComboBox1_Change()
ComboBox1.DropDown
'''''''''POUR RENDRE "IMAGE1"? INVISIBLE''''''''''
Image1.Visible = True
''''''''''''''''''''''''''''''''''''''''''''''''''
If ComboBox1 = "" Then Image1.Picture = LoadPicture(""): Exit Sub
Image1.Picture = LoadPicture(ThisWorkbook.Path & "\Documents\Photos botanique\" & "\" & IIf(ComboBox1.ListIndex = -1, "inexistante", ComboBox1) & ".jpg")
Me.Repaint
End Sub



Private Sub Image1_BeforeDragOver(ByVal Cancel As MSForms.ReturnBoolean, ByVal Data As MSForms.DataObject, ByVal X As Single, ByVal Y As Single, ByVal DragState As MSForms.fmDragState, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As Integer)

End Sub
Private Sub UserForm_Activate()
   With Me.Image1
        .Top = (Me.InsideHeight - Me.Image1.Height) / 2
        .Left = (Me.InsideWidth - Me.Image1.Width) / 2
    End With
End Sub
Private Sub UserForm_Initialize()

 'With Me.Image1
   '     .Top = (Me.InsideHeight - Me.Image1.Height) / 2
   '     .Left = (Me.InsideWidth - Me.Image1.Width) / 2
    'End With
'''''''''POUR RENDRE "IMAGE1"? INVISIBLE''''''''''
Image1.Visible = False
''''''''''''''''''''''''''''''''''''''''''''''''''
Dim fichier
fichier = Dir(ThisWorkbook.Path & "\Documents\Photos botanique\" & "\*.jpg")
While fichier <> ""
  If fichier <> "inexistante.jpg" Then ComboBox1.AddItem Left(fichier, Len(fichier) - 4)
  fichier = Dir
Wend
fichier = Dir(ThisWorkbook.Path & "\Documents\Présentations\" & "\*.ppsm")
While fichier <> ""
  If fichier <> "inexistante.jpg" Then ComboBox1.AddItem Left(fichier, Len(fichier) - 4)
  fichier = Dir
Wend
End Sub
Private Sub Image5_Click()
  Unload Me
Unload Me
End Sub
Voilà ce que j'ai fait
 

Statistiques des forums

Discussions
312 348
Messages
2 087 508
Membres
103 568
dernier inscrit
NoS