Option Explicit
Private LOtDos As ListObject, LOtVal As ListObject, LCou As Long, TVL()
Private Sub UserForm_Initialize()
Set LOtDos = Feuil1.ListObjects("TabDos")
Set LOtVal = Feuil1.ListObjects("TabVal")
ComboBox1.List = LOtDos.DataBodyRange.Value
End Sub
Private Sub ComboBox1_Change()
Dim L As Long, C As Long
If ComboBox1.MatchFound Then
LCou = ComboBox1.ListIndex + 1
TVL = LOtVal.ListRows(2 * LCou - 1).Range.Resize(2).Value
Else
LCou = 0
ReDim TVL(1 To 1, 1 To 4)
End If
For L = 1 To 2: For C = 2 To 5
Me("TextBox" & 2 * (C - 2) + L).Text = TVL(L, C)
Next C, L
End Sub
Private Sub Validation_Click() 'Bouton Valider
Dim L As Long, C As Long, V, Rng As Range
For L = 1 To 2: For C = 2 To 5
V = Me("TextBox" & 2 * (C - 2) + L).Text
If IsNumeric(V) Then TVL(L, C) = CDbl(V)
Next C, L
If LCou = 0 Then
LOtDos.ListRows.Add(AlwaysInsert:=True).Range.Value = ComboBox1.Text
ComboBox1.List = LOtDos.DataBodyRange.Value
Set Rng = LOtVal.ListRows.Add(AlwaysInsert:=True).Range
LOtVal.ListRows.Add AlwaysInsert:=True: Set Rng = Rng.Resize(2)
Else
Set Rng = LOtVal.ListRows(2 * LCou - 1).Resize(2)
End If
Rng.Value = TVL
End Sub