Re
Point 2, Comme dit précédemment si les deux instructions de remise des textbox 18 et 19 sont laissé là, le code TEXBOX 18 CHANGE et 19, sont exécutés deux fois. D'où ma proposition de les enlever de là et de les placer en début de la macro CHANGE
Point 3, dans l'USF2 remplace le code
Private Sub CommandButton2_Click()
Dim cel As Range
Dim prem
n = 0
If TextBox1 <> "" Then
refln = 1
Set cel = Range("E:E").Find(ListBox1.Value, LookIn:=xlValues)
If Not cel Is Nothing Then
prem = cel.Address
Do
If refln = ListBox1.ListIndex + 1 Then refln = cel.Row: Exit Do
refln = refln + 1
Set cel = Range("E:E").FindNext(cel)
Loop While Not cel Is Nothing And cel.Address <> prem
End If
Else: refln = ListBox1.ListIndex + 2
End If
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
lgn = IIf(fb.Range("A" & Rows.Count).End(xlUp).Row = 10, 11, fb.Range("A" & Rows.Count).End(xlUp)(3).Row)
t = fm.Range("C:C").Find(TextBox4, lookat:=xlWhole).Row
n = fb.Range("A" & lgn - 2) + 1
fb.Range("A" & lgn) = n
For j = 1 To 4
colM = Choose(j, 1, 3, 5, 14)
colB = Choose(j, 2, 3, 12, 17)
fb.Cells(lgn, colB).Value = fm.Cells(t, colM).Value
Next j
End If
Next i
fb.Select
Unload Me
End Sub
Cordialement