Private Sub SpinButton1_Change() 'au chagement du SpinButton1
Me.TextBox1.Value = Me.SpinButton1.Value 'la textbox1 récupère la valeur du SpinButton1
End Sub
Private Sub SpinButton2_Change() 'au chagement du SpinButton2
Me.TextBox2.Value = Me.SpinButton2.Value 'la textbox2 récupère la valeur du SpinButton2
End Sub
Private Sub SpinButton3_Change() 'au chagement du SpinButton3
Me.TextBox3.Value = Me.SpinButton3.Value 'la textbox3 récupère la valeur du SpinButton3
End Sub
Private Sub SpinButton4_Change() 'au chagement du SpinButton4
Me.TextBox4.Value = Me.SpinButton4.Value 'la textbox4 récupère la valeur du SpinButton4
End Sub
Private Sub CommandButton4_Click() 'bouton Valider
Dim F As Object 'déclare la variable F (onglet Formulaire)
Dim CTRL As Control 'déclare la variable CTRL (ConTRôLe)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)
Dim I As Byte 'déclare la variable I (Incrément)
Set F = Sheets("Formulaire") 'définit l'onglet F
For Each CTRL In Me.Controls 'boucle sur tous les contrôle de l'UserForm
If TypeOf CTRL Is MSForms.CheckBox Then 'condition 1 "si le contrôle est une checkbox
If CTRL.Value = True Then 'condition 2 : si le contrôle est coché
For I = 1 To Me.Controls("Spinbutton" & Right(CTRL.Name, 1))
Set DEST = IIf(F.Range("A2") = "", F.Range("A2"), F.Cells(Application.Rows.Count, 1).End(xlUp).Offset(2, 0)) 'définit la cellule de destination DEST
DEST.Value = CTRL.Caption 'place le nom de l'essai choisi
Range(CTRL.Caption).Copy DEST.Offset(1, 0) 'copie la plage de l'essai choisi et la colle une ligne en dessous de DEST
Next I
End If 'fin de la condition 2
End If 'fin de la condition 1
Next CTRL 'prochaine controle de la boucle
Unload Me 'vide et ferme l'UserForm
End Sub