Страницы: 1
RSS
Удаление выделенной позиции в ListBox с другого листа
 
Добрый день. Нужна помощь. На отдельном листе находиться содержимое ListBox. Задумано его скрыть (Лист2) и работать через форму на другом листе (Лист1). Добавление в ListBox работает, а вот удаляет строки именно на том листе, на котором запущена форма. Как сделать так, что бы удаление происходило с любого листа? Заранее спасибо.
 
Дмитрий Баранов, так что ли?
Код
activesheet.Rows(ListBox1.ListIndex + 1).Delete
Не бойтесь совершенства. Вам его не достичь.
 
Mershik, почти. Предварительно выбрать либо активировать:

Sheets("Лист2").Activate
ActiveSheet.Rows(ListBox1.ListIndex + 1).Delete

Но может есть ещё варианты?
 
Дмитрий Баранов, я не знаю другого) может кто подскажет, но все равно  запускать форму на листе на котором нужно удалить
Не бойтесь совершенства. Вам его не достичь.
 
Mershik, это форма в форме. Задумка сделать управление с одной формы и для пользователей с кривыми руками, которые могут поудалять всё подряд. Полностью блокировка от неверных действий, что б даже символы лишние не смогли ввести. Рядом с полем выбора заказчика будет кнопка формы Добавления/удаления.
Спасибо за помощь.
 
Дмитрий Баранов, ну не понятно что-то тогда что вы хотите? если вы запускаете форму на листе од то и удалять будете там же ? или как то и аче?
Не бойтесь совершенства. Вам его не достичь.
 
Mershik,форма с удалением запускается на одном листе, содержимое ListBox на другом (скрытом листе)
 
А удалять на каком ?тот и пропишите ...
Не бойтесь совершенства. Вам его не достичь.
 
Mershik, думаю так будет правильно.

Sheets("Лист2").Activate
ActiveSheet.Rows(ListBox1.ListIndex + 2).Delete
Sheets("Лист1").Select

И лист не маячит и возвращается на основной. Нужен был ответ специалистов. Спасибо.
Изменено: Дмитрий Баранов - 06.03.2021 22:39:00
 
Вместо этого
Код
Sheets("Лист2").Activate
ActiveSheet.Rows(ListBox1.ListIndex + 2).Delete
Sheets("Лист1").Select

просто это
Код
Sheets("Лист2").Rows(ListBox1.ListIndex + 2).Delete

И никаких .Activate и .Select
"Все гениальное просто, а все простое гениально!!!"
 
Nordheim,Спасибо. Я так пробовал, не зашло( Щас всё работает. Странно)
 
Что не так то?! Может кто поможет разобраться. Если указывать заполнение ListBox через RowSource, то всё работает, но не показывает добавленное сразу в списке, надо перезапустить. А ели через ControlSource, то добавленное показывает сразу, но выбивает сам эксель по неизвестным мне причинам(
Если добавить команду заполнения после добавления, то в принципе всё работает, но может есть способ всё таки через таблицу, что бы не было пустых строк.
 
Или как в случае заполнения через RowSource убрать пустые строки с Listbox? Не могу допереть(
Всё работает, осталась только эта неприятная болячка(  
Изменено: Дмитрий Баранов - 07.03.2021 11:37:45
 
Ничего не понял, что именно не работает, но возможно этот вариант подойдет.
Еще вариант, немного упрощенный, но с тем же функционалом
Изменено: Nordheim - 09.03.2021 09:21:45
"Все гениальное просто, а все простое гениально!!!"
 
Nordheim, круто!!! Большое спасибо!
Страницы: 1
Наверх