Je ne suis pas sûr que Clear soit approprié ?
Oui exact. Voici le code corrigé sur base de ce que je comprends
Private Sub btnajout_Click()
Dim i As Byte
Dim lig As Integer, ligniveau As Integer
For i = 0 To Me.ListBoxRecap.ListCount - 1
With Feuil1.ListObjects("TableauSource")
If .ListRows.Count = 0 Then
.ListRows.Add: lig = 1
Else: .ListRows.Add: lig = .ListRows.Count 'insérer à la dernière ligne
End If
With .DataBodyRange
.Item(lig, 1) = txtnom.Value
.Item(lig, 2) = Txtprenom.Value
.Item(lig, 3) = cbomachine.Value
ligniveau = WorksheetFunction.Match(Me.ListBoxRecap.List(i), Sheets("Feuil1").ListObjects("t_competences").ListColumns(1).DataBodyRange, 0)
.Item(lig, 4) = Sheets("Feuil1").ListObjects("t_competences").ListColumns(1).DataBodyRange(ligniveau, 2)
.Item(lig, 5) = Format(Txtdate.Value, "mm/dd/yyyy")
.Item(lig, 6) = cboformateur.Value
.Item(lig, 7) = Me.ListBoxRecap.List(i)
End With
End With
Next i
Feuil1.Activate
MsgBox "La formation a bien été ajouté à la base de données", vbOKOnly + vbInformation, "CONFIRMATION"
End Sub
faites un test