Добрый день всем! На форме размещены 10 списков по два столбца в каждом (имена у всех уникальные, так уж получилось). С каждым списком возможны типичные манипуляции, т.е. заполнение их типичными данными. Например 4 разных набора данных. Проще всего конечно рядом с каждым списком прикрутить 4 кнопки, но захламится форма и код вырастет многократно. Хочу написать процедуру, которая бы работала с каждым списком, т.е. по сути мне нужно в процедуру передать имя списка, чтобы с ним можно было работать дальше (наполнять типичными данными). Можно ли это сделать и как? Спасибо
Сделал
Код
vnesti_nabor (nomer2_vsego)' Ругается "Object required..."
...
Sub vnesti_nabor(nomer As ListBox)
...
End Sub
Если честно, не понял взаимосвязи между моим вопросом и Вашим ответом. Представьте себе 10 цехов (это списки на форме), в которые каждый день нужно отправлять заказы. Есть типичные (постоянные) заказы. Мы размещаем на форме 4 дополнительные кнопки, а не 40. Нажали кнопку "1" - список заказов заполнился сразу определенным набором данных. Процедура, которую хочу написать, будет получать из основного кода имя списка, который в настоящее время активен (выделен) и дальше все понятно. Я выше написал как я это делаю, но выскакивает ошибка, т.к. при вызове процедуры список еще не заполнен, поэтому null, возникает ошибка
DRONAN написал: Если честно, не понял взаимосвязи между моим вопросом и Вашим ответом
Если это относительно моего ответа, то я вообще, пока нет конкретного файла-пример (Как есть - Как надо), все вопросы расцениваю как чисто теоретические. И ответы даю соответствующие
Согласие есть продукт при полном непротивлении сторон
Ок, поясню. Работать должно так: на форме помимо других элементов размещены 4 кнопки, отвечающие за передачу из одного списка в другой определенных наборов. Как я уже писал, таких блоков, как на скрине 10 штук. Выделяем определенный список, допустим nomer2_1 (или nomer2_vsego), нажимаем кнопку "1" - список nomer2_vsego заполнился набором №1, нажимаем кнопку "2" - заполнился набором №2 и т.д. Так вот мне нужно для написания процедуры на нажатие кнопок 1...4 передать имя списка, который в данный момент выделен так, чтобы с ним можно было работать. Т.е. выделен список nomer2_1 - заполнился список nomer2_vsego, выделен nomer3_1 - заполнился список nomer3_vsego и т.д.
спасибо vikttur, единственный кто более менее вник в суть
Цитата
vikttur написал: передаем списк ListBox, далее работаем с ним как с массивом
Это не помогло конечно, нашел решение на другом сайте. Если интересно кому, то правильно так передавать ListBox в качестве аргумента процедуры
Код
Call vnesti_nabor(nomer2_vsego) ' вызов процедуры заполнения списка
...
Sub vnesti_nabor(ByRef nOmer As MSForms.ListBox) 'правильная передача аргумента
nOmer.AddItem 0
nOmer.List(0, 0) = "..."
...
End Sub
Сложно вникнуть в суть по картинкам, а вот на счет передачи списка из ListBox, с помощью массива проблем никогда не возникало. А рисовать пример в Excel мне лично лень. Как написано у одного пользователя, кому нужно решение проблемы, тот и пример рисует. Тут форум по Excel, а не по фотографиям из Excel.
"Все гениальное просто, а все простое гениально!!!"
DRONAN, в следующий раз: - вчитывайтесь, что Вам пишут; - прикладывайте нормальный пример в Excel, а не картинки; - показывайте ссылки а параллельное размещение темы на других форумах; - сами форматируйте код в сообщениях с помощью кнпки <...>