Pardon, je ne comprends pas trop ta réponse. Mo je voudrais juste que Image1 soit centré automatiquementBonjour
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
Ok pardon, mais si je demande de l'aide, c'est que je ne sais absolument pas faire.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.
Ok pardon, mais si je demande de l'aide, c'est que je ne sais absolument pas faire.
With Me.Image1
.Top = (Me.InsideHeight - Me.Image1.Height) / 1
.Left = (Me.InsideWidth - Me.Image1.Width) / 1
End With
Private Sub UserForm_Initialize()
Me.Image1.Left = (Me.Width - Me.Image1.Width) / 2
Me.Image1.Top = (Me.InsideHeight - Me.Image1.Height) / 2
End Sub
Bonjour PierreJean,Bonjour toubabou
Salut jmfmarques
A tester:
VB:Private Sub UserForm_Initialize() Me.Image1.Left = (Me.Width - Me.Image1.Width) / 2 Me.Image1.Top = (Me.InsideHeight - Me.Image1.Height) / 2 End Sub
Voilà le code que j'ai trouvé
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 ?) :je pense qu'il faut modifier quelque chose pour centrer mon image
Exactement comme pour centrer une boîte d'allumettes dans un rectangle :
exemple pour le haut : (hauteur_rectangle - hauteur_boite_allumettes)/2
J'ai l'impression que cela règle uniquement la hauteur et largeur de mon Image1 et non pas sa position dans UserForm13With Me.Image1
.Top = (Me.InsideHeight - Me.Image1.Height) / 1
.Left = (Me.InsideWidth - Me.Image1.Width) / 1
End With
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 ?) :
Lis-tu au moins ce que j'écris ? Je n'en ai vraiment pas l'impression, sais-tu ?
With Me.Image1
.Top = (Me.InsideHeight - Me.Image1.Height) / 2
.Left = (Me.InsideWidth - Me.Image1.Width) / 2
End With
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.
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 :
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