Bonjour,
et ca? :
Tu déclares en variable locale :
Dim lLng As Long
Dim lLar As Long
Tu déclares dans ta form_load :
lLng = Me.Width
lLar = Me.Height
'*************************************************************************
'* Reformatage de la feuille en adaptant les controles présents
'*************************************************************************
Private Sub Form_Resize()
Dim ctl As Control
'-- On vérifie que le l'état visuel de la feuille n'est pas sur minimale
'-- Si c'est le cas on sort de la procédure
If (Me.WindowState = 1) Then Exit Sub
'-- Pour chaque controle
For Each ctl In Me.Controls
'-- On vérifie le type de controle
If TypeOf ctl Is ComboBox Then
'-- Les comboboxes ont leur propriété Height en lecture seule
'-- On modifie les propriétées de largeur, de position
ctl.Move ctl.Left * Me.Width / lLng, ctl.Top * Me.Height / lLar, ctl.Width * Me.Width / lLng
Else
'-- On modifie les propriétées de largeur, de hauteur, de position
If ExistProperty(ctl, "Width") And ExistProperty(ctl, "Height") Then
ctl.Move ctl.Left * Me.Width / lLng, ctl.Top * Me.Height / lLar, _
ctl.Width * Me.Width / lLng, ctl.Height * Me.Height / lLar
End If
End If
Next
'-- On redéfini les variables
lLng = Me.Width
lLar = Me.Height
End Sub
'*************************************************************************
'* On test si la propriété du controle existe
'*************************************************************************
Public Function ExistProperty(Obj As Object, ByVal PropertyName As String) As Boolean
'-- Fonction qui test les différentes propriétés a savoir si elle existe ou pas.
On Error Resume Next
CallByName Obj, PropertyName, VbGet
ExistProperty = (Err.Number = 0)
Err.Clear
End Function
Bon courage et bon coding
S.L.B.