основная проблема, то что в списке есть повторяющиеся значения.
Поэтому нельзя с помощью массива точно узнать положение элемента.
Ситуация вообще такая: в зависимости от положения выбранного элемента в списке, в другой ячейке нужно вставить значение зависящее от положения выбранного элемента в списке.
Private Sub Worksheet_change(ByVal target As Range)
If target.Address = "$C$39" Then
a = Range(c39).ListIndex - ОШИБКА Sheets("ТТН-1 (1)").Range("P39").Value = Sheets("перечень").Cells(a + 3, 9) End If End Sub
Выдает ошибку 1004, я так понял нельзя использовать метод Lastindex но как иначе считать значение номера элемента списка. range (c39) - список.
Под ListBox он имеет ввиду тот ComboBox, который отображается на форме (который суть Shape).
Лучше всего, меняй значение ячейки, которая связана со списком.
Какой ужас...
Фактически это не список и напрямую до него ты не достучишься.
Можешь заполучить для требуемой ячейки источник этого списка, найти пятый элемент и внести его значение в ячейку.
Application.Range(Application.ConvertFormula(Mid$(Selection.Validation.Formula1,2),xlA1, xlA1)).Cells(5) или что-то похожее