Private Sub UserForm_Initialize()
Dim Txt As MSForms.TextBox
Dim Lbl As MSForms.Label
Dim NbCtrl As Integer
Dim I As Integer
Dim Haut As Integer
Dim Gauche As Integer
Dim Largeur As Integer
Dim Hauteur As Integer
Dim Espace As Integer
'dimensions des contrôles
Hauteur = 15
Largeur = 100
'espace les séparants
Espace = 10
'nombre de paires de contrôles
NbCtrl = 10
'initialise le point de départ
Haut = Espace
'boucle sur le nombre
For I = 1 To NbCtrl
'création des Labels
Set Lbl = Me.Controls.Add("Forms.Label.1", "Lbl" & I, True)
'définition de certaines propriétés des Labels
With Lbl
.Top = Haut
.Left = Espace
.Height = Hauteur
.Width = Largeur
.Caption = "Label " & I
.BorderStyle = 1
.TextAlign = fmTextAlignCenter
End With
'créations des TextBox
Set Txt = Me.Controls.Add("Forms.TextBox.1", "Txt" & I, True)
'définition de certaines propriétés des TextBox
With Txt
.Top = Haut
.Left = Espace + Lbl.Width + Espace
.Height = Hauteur
.Width = Largeur
End With
'incrémente
Haut = Haut + Hauteur + Espace
Next I
'si les contrôles du bas ne sont plus visibles, affiche la barre verticale
If Haut > Me.Height Then
Me.ScrollBars = fmScrollBarsVertical
Me.ScrollHeight = Haut
End If
End Sub