Private Sub CommandButton1_Click()
Dim i As Byte 'déclare la variable i (incrément)
Dim ct(1 To 6) As Control 'déclare le tableau de variables ct (ConTrôles)
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim q As Integer 'déclare la variable q (Quantité)
Set ct(1) = Me.TextBox1: Set ct(2) = Me.TextBox3: Set ct(3) = Me.TextBox6:: Set ct(4) = Me.TextBox5: Set ct(5) = Me.TextBox4: Set ct(6) = Me.TextBox7 'définit les cinq contrôles
For i = 1 To 6 'boucle sur les cinq labels
'colore le label, en rouge si le contrôle correspondant est vide, en noir si le contrôle correspondant est non vide
Me.Controls("lb" & i).ForeColor = IIf(ct(i).Value = "", RGB(255, 0, 0), RGB(0, 0, 0))
Next i 'prochain label de la boucle
For i = 1 To 6 'boucle sur les trois labels
If Me.Controls("lb" & i).ForeColor = RGB(255, 0, 0) Then 'condition : si le label est rouge
MsgBox "Vous devez renseigner le " & Left(Me.Controls("lb" & i).Caption, Len(Me.Controls("lb" & i).Caption) - 4) & " !" 'message
ct(i).SetFocus 'donne le focus au contrôle correspondant
Exit Sub 'sort de la procédure
End If 'fin de la condition
Next i 'prochain label de la boucle
With Sheets("Etatdustock") 'prend en compte l'onglet "Etatdustock"
dl = .Cells(Application.Rows.Count, 1).End(xlUp).Row + 1 'de'finit la dernière ligne de la colonne A
.Cells(dl, 1) = Me.TextBox1.Value 'place la civilité en colonne A
.Cells(dl, 2) = Me.TextBox3.Value 'place le nom en colonne B
.Cells(dl, 3) = Me.TextBox6.Value 'place le projet en colonne C
.Cells(dl, 4) = Me.TextBox5.Value 'place le chantier en colonne D
.Cells(dl, 5) = Me.TextBox4.Value 'place le fournisseur en colonne E
.Cells(dl, 7) = Me.TextBox7.Value 'place le fournisseur en colonne E
End With 'fin de la prise en compte de l'onglet "ficheresponsableachat"
' ---------------------------------------------------------------------------------------------
If CheckBox1 Then ' ajoute le fournisseur à la feuille base de données si checkbox1 est cochée
With Sheets("basededonnees")
lg = .Range("A" & .Rows.Count).End(xlUp).Row + 1 ' récupère le n° de la 1ère ligne vide en colonne A
.Cells(lg, 1) = TextBox7 ' Fournisseur
.Cells(lg, 2) = TextBox1 ' Référence
.Cells(lg, 3) = TextBox8 ' Descriptif
End With
End If
' ---------------------------------------------------------------------------------------------
MsgBox "Votre référence a été ajoutée avec succés ! " 'message
Unload Me 'vide et ferme l'Userform
Worksheets("Etatdustock").Activate 'affiche l'UserForm "Formulaire"
End Sub