Bonjour,
c'est normal ; vous répétez le même code pour toutes vos combobox ( quelles soient vides ou non )
dlg = .Range("A" & Rows.Count).End(xlUp).Row + 1
.Cells(dlg, 1) = Date
.Cells(dlg, 2) = CboNomS2.Value
.Cells(dlg, 3) = txtLotS2.Value
.Cells(dlg, 4) = txtPerimeS2.Value
.Cells(dlg, 5) = CboNomUtilisation2.Value
.Cells(dlg, 6) = txtS2.Value
.Cells(dlg, 7) = txtOperateurS2.Value
Donc vide ou non excel ira au minimum indiquer la date en colonne A et ainsi pour le code suivant End(xlUp).Row + 1 ne fonctionnera plus.
Vous devez tester d'abord si une selection a été effectuer sur la combobox avant d'effectuer vos "Range" value.
Exemple pour le premier ( à répéter sur les suivants :)
If CboNomS1.listindex <> 0 Then
dlg = .Range("A" & Rows.Count).End(xlUp).Row + 1
.Cells(dlg, 1) = Date
.Cells(dlg, 2) = CboNomS1.Value
.Cells(dlg, 3) = txtLotS1.Value
.Cells(dlg, 4) = txtPerimeS1.Value
.Cells(dlg, 5) = CboNomUtilisation1.Value
.Cells(dlg, 6) = txtS1.Value
.Cells(dlg, 7) = txtOperateurS1.Value
End if