Это работает следующим образом
Dim Txt As Variant
On Error Resume Next
Txt = Application.WorksheetFunction.VLookup(FraisM.ListBox1.List(FraisM.ListBox1.ListIndex), Range("B4:C7"), 2, False)
If Err.Number <> 0 Then
MsgBox " Not found" ''optional, no need to do anything
Err.Clear
Exit Sub ' Or may use Goto label
End If
On Error GoTo 0
'Create row
Range("EndlineFM").Select
Selection.Insert Shift:=xlDown
'Initialise Detail and montant of new row
Range("TotalF").Offset(-1, 0) = Txt
Я взял FraisM
в качестве имени пользователя и предполагаемый код, запущенный из модуля.Если вы используете Msform.ListBox
на листе, вы можете попробовать
Dim MyLB As Object
Set MyLB = Sheet1.Shapes("List Box 1")
Txt = Application.WorksheetFunction.VLookup(MyLB.ControlFormat.List(MyLB.ControlFormat.ListIndex), Range("B4:C7"), 2, False)