Bonjour,
Teste le code ci-dessous et reviens.
Il te faut tout d'abords renommer tes contrôles afin que ce soit plus parlant comme CmbBât au lieu de ComboBox1. Dans le code ci-dessous, les contrôles ont tous été renommés, il te faut, en fonction de la colonne de destination, redéfinir leur propriété "Name" puis tester le code :
Private Sub BtValiderSaisie_Click()
Dim Ctrl As Control
Dim I As Long
With Worksheets("Extincteur")
'défini la première ligne vide sur la colonne B
I = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
.Cells(I, 2) = UCase(CmbBât.Text)
.Cells(I, 3) = UCase(TxtEmplacement.Text)
.Cells(I, 4) = UCase(TxtNumExtinteur.Text)
.Cells(I, 5) = UCase(CmbType.Text)
.Cells(I, 6) = UCase(CmbCapacite.Text)
.Cells(I, 7) = UCase(TxtDateVerif.Text)
.Cells(I, 9) = UCase(CmbFabricant.Text)
.Cells(I, 10) = UCase(TxtDateFabrication.Text)
.Cells(I, 11) = UCase(TxtReepreuve.Text)
.Cells(I, 12) = IIf(ChkRe = True, "X", "")
.Cells(I, 13) = IIf(ChkMa = True, "X", "")
.Cells(I, 14) = IIf(ChkRa = True, "X", "")
.Cells(I, 15) = IIf(ChkD = True, "X", "")
.Cells(I, 16) = IIf(ChkR = True, "X", "")
.Cells(I, 17) = IIf(ChkN = True, "X", "")
.Cells(I, 18) = UCase(TxtObs.Text)
End With
MsgBox "Données bien enregistrées !"
'vide les contrôles
For Each Ctrl In Me.Controls
If TypeName(Ctrl) = "TextBox" Or TypeName(Ctrl) = "ComboBox" Then
Ctrl.Text = ""
ElseIf TypeName(Ctrl) = "CheckBox" Then
Ctrl.Value = False
End If
Next Ctrl
End Sub
Private Sub UserForm_Initialize()
CmbBât.RowSource = "Bâtiment"
CmbCapacite.RowSource = "Capacité"
CmbType.RowSource = "Type_Extincteur"
CmbFabricant.RowSource = "Fabriquant"
End Sub
Hervé.