bonsoir,
je te propose cette adaptation du code
Option Explicit
Sub Valider()
Dim i As Integer, n As Long, num As Integer
num = Application.Max([T_recap[N° bon de visite]]) + 1
For i = 4 To 13
If Range("B" & i) <> "" Then
If [T_recap].Item(1, 1) <> "" Then n = [T_recap].Rows.count + 1 Else n = 1
[T_recap].Item(n, 1) = num 'N° bon de visite
[T_recap].Item(n, 2) = "NON" 'PDF
[T_recap].Item(n, 3) = Range("B3").Value 'Date de la visite
[T_recap].Item(n, 4) = Range("B" & i).Value 'Renseignement(s) visiteur(s)
[T_recap].Item(n, 5) = Range("B16").Value 'Organisme demandeur
[T_recap].Item(n, 6) = Range("B17").Value 'Nom du POC
[T_recap].Item(n, 7) = Range("B18").Value 'Tél. du POC
[T_recap].Item(n, 8) = Range("B19").Value 'Nature de la demande
[T_recap].Item(n, 9) = Range("B20").Value 'Points particuliers
[T_recap].Item(n, 10) = Range("B21").Value 'Réception du bon le
[T_recap].Item(n, 11) = Range("B23").Value 'Signature du bon
End If
Next
Range("B3:B21").ClearContents
Range("B23").ClearContents
End Sub