Страницы: 1
RSS
ListBox, возврат и выделение последней обрабатываемой записи
 
 

Здравствуйте! Благодаря форуму разобралась со всеми своими задумками по данной форме. Но есть вопрос, ответ на который я никак найти не могу. Суть такая: обрабатывается файл в 16тыс.наименований (строк), фильтрую по наименованию, записям в нем присваивается нужная группа и класс (выбор в Combobox), но при добавлении изменений в файл Excel и обновлении записей в Listbox-e активной становится первая запись.

 

Как сделать так, что бы запоминалась последняя запись в Listbox-e с которой работали и при обновлении она оставалась выделенной (активной). Ну, что бы по списку не искать. Спасибо.

 
 
Не совсем понятно, что Вы хотите. При попытке каких-то действий на форме вываливаются ошибки (наверное что-то не в той последовательности делаю, но Вы это то-же учтите, ошибки нужно обрабатывать в коде, что-бы пользователь не пугался)
Ну так, на вскидку, запоминайте нужное значение в какой нибудь самой дальней ячейке самого дальнего (можно скрытого) листа, а при необходимости считывайте ег оттуда и делайте переход в ЛистБоксе
Или в свойство Tag того же ЛистБокса
Изменено: Sanja - 20.02.2017 10:50:02
Согласие есть продукт при полном непротивлении сторон
 
Видимо не совсем я внятно свою проблему описала  :cry:
здесь:
Код
Private Sub CommandButton5_Click()

отрабатывается поиск по условию, которое нужно ввести в Textbox - e, основной поиск в файле по "наименованию из 1С" ( если не выбрано по какому критерию ищем и что ищем то даст ошибку - )

так как несколько идентичных товаров принадлежат к одной группе и одному классу, сделала возможность заполнение полей в таблице и через форму или "ручками" в файле Excel.

здесь: я выбираю да записи в  Listbox-е группу и класс

Код
Private Sub CommandButton3_Click()
Stroka = ListBox2.List(ListBox2.ListIndex, 0)
Sheets("Таблица перехода").Cells(Stroka, 11) = ComboBox1
Sheets("Таблица перехода").Cells(Stroka, 13) = ComboBox2 Call CommandButton5_ClickEnd Sub

выбранне заначения из Combobox-сов переносятся в файл  и, повторно запускается фильтр на прежних условях, ну чтобы видеть где изменения есть

вопрос только в том как потом вернуться именно к той записи которую обрабатывали последней, в Listbox-е, подсветитить ее так сказать

Код
 ListBox2.ListIndex = ListBox2.ListCount - 1

так я к последней вернусь, а мне нужна  именно та, которую обрабатывали до запуска Private Sub CommandButton3_Click() иначе мне приходится искать среди выбранных 500 (допустим) сторок, ту для которой группа/класс не заполнен, глазами, а это не удобно
 
Попробуйте сами разобраться с тем, куда это добавить
Код
'сохранить индекс выбранного элемента
With Me.ListBox2
    .Tag = .ListIndex
End With

'выделить элемент с сохраненным ранее индексом
With Me.ListBox2
    .Selected(.Tag) = True
End Sub
Согласие есть продукт при полном непротивлении сторон
 
Супер!!! Спасибо!! Все получилось
 
Добрый день!
Если я правильно понял, Вам нужно встать на ту строку, которая считывается в переменную stroka.
тогда, м.б., вот так?
Код
Public Stolb As Integer
Public TexFortFind
Dim numPoz As Long

и т.д....
Код
Private Sub CommandButton3_Click()
Stroka = ListBox2.List(ListBox2.ListIndex, 0)
numPoz = ListBox2.ListIndex
Sheets("Таблица перехода").Cells(Stroka, 11) = ComboBox1
Sheets("Таблица перехода").Cells(Stroka, 13) = ComboBox2


  Call CommandButton5_Click
Me.ListBox2.ListIndex = numPoz
Me.ListBox2.SetFocus

End Sub
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Спасибо!
Страницы: 1
Наверх