Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
VBA ListBox свойство MultiSelect, как на ListBox выбрать все и как очистить все выбранное одним действием
 
Уважаемые форумчане,

нигде не удалось найти  (возможно плохо ищу?) пример или описание, как в VBA на ListBox, где установлено свойство Multiselect, выбрать все элементы списка и очистить выбранное одним "щелчком"
Если у кого-нибудь есть примеры или можете подсказать в какую сторону двигаться в процедуре, буду благодарна.
 
Я делаю и то и другое перебором в цикле всех строк в ЛистБоксе.
 
В VBA листбокс совмещает в себе и листбокс классический и CheckedListBox. Но в упрощенном виде. У него нет коллекций Checkedindices и CheckedItems, поэтому обрабатывать выбранные можно только через цикл по всем элементам с проверкой на "выделение".
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий, Юрий, все понятно. Спасибо.
 
Уважаемые форумчане!

помогите, пожалуйста.
мне нужно , чтобы выпадающий список позволял вставлять в ячейку несколько значений. Это было сделано, но программа работает странно. если  выбрать ячейку слева или справа от столбца, в котором есть выпадающий список , то выпадающий список не работает, т.е. он как будто заблокирован. Работает только, если выбирать ячейки в этом столбце ( т.е. снизу или сверху). Помогите, пож-ста, исправить. очень - очень надо!!!
 
Выпадающий список - в данном случае ListBox? Так ведь он привязан к столбцу W. Добавьте в проверку нужный столбец.
 
Юрий, да. Это ListBox. Немного не поняла. Мне нужно, чтобы в столбце W из Listbox была возможность выбирать несколько значений. Это работает, но только в том случае, если все время выбираются ячейки только в столбце W. Если кликнуть на ячейку в другом столбце, а затем попытаться зайти опять в Listbox в столбце W и выбрать, то это не получится.
спасибо.
Изменено: Alex2m - 22 Фев 2013 23:49:43
 
Вот так можно выделить все и очистить выделение без цикла:
Код
Private Sub CommandButton1_Click()
ListBox1.Selected(0) = True
ListBox1.SetFocus
Application.SendKeys "^+{End}" 'Ctrl+Shift+End
End Sub

Private Sub CommandButton2_Click()
ListBox1.MultiSelect = fmMultiSelectSingle
ListBox1.MultiSelect = fmMultiSelectExtended
End Sub
 
Так ведь нужно и ЛистБокс тогда вызывать в другом столбце.
 
А на моем примере можете показать, если не сложно?
 
Правый клик по ярлычку листа - Исходный текст. Там у Вас есть строка:
Код
If ActiveCell.Address Like "$W*" Then

Добавьте соседний столбец:
Код
If ActiveCell.Address Like "$W*" Or ActiveCell.Address Like "$X*" Then

Но я бы так не записывал - использовал бы Target.Column
 
Юрий,
мне не нужно, чтобы в X был тоже выпадающий список. Он должен быть только в W и работать постоянно, а не через раз.
 
ЛистБокс вызывается из активной ячейки, которая в имеющемся коде должна принадлежать столбцу W. И в эту же ячейку возвращаются выбранные значения из ЛистБокс. И работает он нормально. Теперь читаем:
Цитата
если выбрать ячейку слева или справа от столбца, в котором есть выпадающий список , то выпадающий список не работает
Т.е. - Вы хотели, чтобы ЛистБокс вызывался из соседних столбцов. Но теперь выясняется, что он должен быть только в столбце W. Так что же в конечном счёте нужно? Постарайтесь сформулировать.
 
Юрий, извините за неясную формулировку.
Нужно чтобы выпадающий список был только в W. Это работает. Но попробуйте перед вызовом listbox в столбце W, сначала кликнуть на другой столбец. Дословно : выбираете произвольную ячейку в столбце X, затем идете в столбец W и пытаетесь выбрать значения из выпадающего списка. Так вот listbox в такой последовательности не работает. А нужно чтобы работал всегда.
Изменено: Alex2m - 23 Фев 2013 00:36:15
 
Проверил, как Вы написали со столбцом Х - всё работает корректно. Проверил и со столбцом V - тоже всё хорошо.
 
А у меня нет, почему-то. А вы можете выложить видео или прислать сам файл?
 
Вернуть Вам Ваш файл? А смысл? Может быть Вы говорите о другом? Выбрали ячейку в столбце Х, вызывали ЛистБокс (в столбце W), а значение должно вернуться в столбец Х?
 
нет, значение должно вернуться в W. а у меня в таком порядке listbox заблокирован. Т.е. он раскрывается, но выбрать ничего не дает. И только после того как я еще раз выбрала другую ячейку в W listbox снова работает. Может это настройки параметров Listbox? Но я уже все перепробовала.
Изменено: Alex2m - 23 Фев 2013 00:52:45
 
Проверил ещё раз для двух соседних столбцов - всё в порядке: выбор и вставка работают.
 
ээх, а у меня почему-то нет.ну что же, спасибо  еще раз за уделенное мне время.
Страницы: 1
Читают тему (гостей: 1)