Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Оптимальный способ получения параметров из Userform - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Оптимальный способ получения параметров из Userform (Макросы/Sub)
Оптимальный способ получения параметров из Userform
Невилл Дата: Суббота, 19.11.2016, 16:36 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 70
Репутация: 2 ±
Замечаний: 0% ±

Excel 2007
Уважаемые форумчане,
Хочу попросить у вас совета, чтобы немного оптимизировать свой код. Вопрос суто теоретический.

Итак, есть самописная программка для генерации отчетов по дебиторке (немного напоминает по процессу - формирование оборотно-сальдовой ведомости в 1С7.7).
Чтобы не отнимать у Вас много времени, в тестовом файле убрал весь функционал, и оставил лишь свою юзерформу и "структуру" модуля.

По простому должно выглядеть так: пользователь запускает юзерформу, выбирает всяческие параметры (список контрагентов или товар), на основании которых уже и формируется весь отчет. "Параметры отчета" вы увидите в immediate, нажав на "Сформувати звіт")
Скажем, если он поставил "галочку" напротив "условного форматирования", то к части ячеек оно будет применяться.

Только, как Вы можете, эти "параметры отчета" я таскаю от процедуры к процедуре (или функции) в качестве аргументов постоянно:
[vba]
Код
    Call Add_Report_Header(Debt, GoodName, Counterparts, CondFormat, MergePayments)
    Call Add_Report_Body(Debt, GoodName, Counterparts, CondFormat, MergePayments)
[/vba]
Думаю, что выглядит неправильно и коряво. Пока появилось время, хочу привести в порядок.

Подскажите, пожалуйста, с помощью чего лучше это делать в таких ситуациях:
- глобальные переменные;
- Userform.Hide место Unload;
или вообще подобные параметры как-то можно выцеплять напрямую сразу из формы?
К сообщению приложен файл: fffff.xlsm(66Kb)
 
Ответить
СообщениеУважаемые форумчане,
Хочу попросить у вас совета, чтобы немного оптимизировать свой код. Вопрос суто теоретический.

Итак, есть самописная программка для генерации отчетов по дебиторке (немного напоминает по процессу - формирование оборотно-сальдовой ведомости в 1С7.7).
Чтобы не отнимать у Вас много времени, в тестовом файле убрал весь функционал, и оставил лишь свою юзерформу и "структуру" модуля.

По простому должно выглядеть так: пользователь запускает юзерформу, выбирает всяческие параметры (список контрагентов или товар), на основании которых уже и формируется весь отчет. "Параметры отчета" вы увидите в immediate, нажав на "Сформувати звіт")
Скажем, если он поставил "галочку" напротив "условного форматирования", то к части ячеек оно будет применяться.

Только, как Вы можете, эти "параметры отчета" я таскаю от процедуры к процедуре (или функции) в качестве аргументов постоянно:
[vba]
Код
    Call Add_Report_Header(Debt, GoodName, Counterparts, CondFormat, MergePayments)
    Call Add_Report_Body(Debt, GoodName, Counterparts, CondFormat, MergePayments)
[/vba]
Думаю, что выглядит неправильно и коряво. Пока появилось время, хочу привести в порядок.

Подскажите, пожалуйста, с помощью чего лучше это делать в таких ситуациях:
- глобальные переменные;
- Userform.Hide место Unload;
или вообще подобные параметры как-то можно выцеплять напрямую сразу из формы?

Автор - Невилл
Дата добавления - 19.11.2016 в 16:36
Udik Дата: Суббота, 19.11.2016, 16:58 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1202
Репутация: 152 ±
Замечаний: 0% ±

Excel 2013
или вообще подобные параметры как-то можно выцеплять напрямую сразу из формы?

Вы про какие параметры? Если про те, которые устанавливаются на видимых контролках юзерформ, так обычно так и делают. Чтобы к ним обратиться пишешь кодовое имя формы, точка, кодовое имя конрола, точка, имя свойства:
[vba]
Код

ReportMaster.optDebt0.Enabled
[/vba]


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com
 
Ответить
Сообщение
или вообще подобные параметры как-то можно выцеплять напрямую сразу из формы?

Вы про какие параметры? Если про те, которые устанавливаются на видимых контролках юзерформ, так обычно так и делают. Чтобы к ним обратиться пишешь кодовое имя формы, точка, кодовое имя конрола, точка, имя свойства:
[vba]
Код

ReportMaster.optDebt0.Enabled
[/vba]

Автор - Udik
Дата добавления - 19.11.2016 в 16:58
Невилл Дата: Суббота, 19.11.2016, 21:10 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 70
Репутация: 2 ±
Замечаний: 0% ±

Excel 2007
Udik, спасибо. Не думал, что все настолько очевидно... Не учел "имя свойства", теперь все стало на свои места.
 
Ответить
СообщениеUdik, спасибо. Не думал, что все настолько очевидно... Не учел "имя свойства", теперь все стало на свои места.

Автор - Невилл
Дата добавления - 19.11.2016 в 21:10
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Оптимальный способ получения параметров из Userform (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2016 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!