Страницы: 1
RSS
Сортировка макросов., Возможно ли сортировать и фильтровать макросы?
 
Всем привет.
Для каждого поставщика пишу макросы, книгу с макросами рассылаю менеджерам. Книга обязательно должна быть одна и рассылаться всем.
Т.к. количество поставщиков увеличивается очень быстро, то и макросов становится очень много., работать становится не удоно. Возможно ли эти макросы фильтровать?
 
Как вариант - написать один "макрос-запускатель", где будете из сортированного списка выбирать своих поставщиков, а эти все спрятать в private.
 
Как по мне, так идея с макросом на каждого поставщика неудачная. Насколько я понимаю, это связано с тем, что по каждому поставщику есть определенные условия и параметры обработки? Если да, то лучше сделать так:
1. Систематизировать эти параметры и условия
2. Составить сценарии обработки или макрос с параметрами обработки (Sub Test (Supplier as String, Region as String, NDS as Boolean)).
3. Создать скрытый лист со списком поставщиков и идентификатором сценария обработки (Поставщик: ООО "Зоря" Сценарий:1, Поставщик: ООО "Звезда" Сценарий:2, Поставщик: ООО "Небо" Сценарий:1 и т.д.), либо со списком параметров (Поставщик: ООО "Зоря" Город:Киев НДС: с НДС, Поставщик: ООО "Звезда" Город:Москва НДС: без НДС и т.д.)
4. Пишем макрос-стартер, который спрашивает Название/Код поставщика, либо предлагает выбрать из списка, либо ткнуть в ячейку. Далее находить на скрытом листе сценарий или параметры обработки и запускает макрос-обработчик.
Пользователи, как школьники, учиться хотят далеко не все, а отличниками становятся единицы.
Проблема - это ситуация, в решении которой человек не заинтересован.
 
Если так, то и "запускатель" не нужен, всё прописываем в этом одном макросе.
Я же шёл по пути меньшего сопротивления - раз уже макросы есть, то просто запускаем нужный.
Ну а дальше действительно можно сочинить один макрос посложнее, куда как параметр передавать из этого стартера название/ID поставщика.
 
Hugo, DEAD MAN, ,боюсь что я не настолько опытная в написании макросов и даже не совсем представляю как это можно реализовать.
Т.е. Макросы, которые просто обрабатывают файл да, и в принципе проблем не было, а вот сценарии обработки   что это и как этим пользоваться не знаю...
 
Макросы с параметрами, для "ковыряния":

Код
Sub starter()
Dim out As Double
    Call macro1("пример")
    Call macro2(out, 25, 10, 15.44)
    MsgBox out - 15
End Sub

Sub macro1(s As String)
    MsgBox s
End Sub

Sub macro2(x, ParamArray a())
    Dim el:  x = 1
    For Each el In a
        x = x * el
    Next
    MsgBox x
End Sub
 
Цитата
Hugo пишет:
можно сочинить один макрос посложнее
зачем один посложнее, если можно два попроще? :)

Цитата
DEAD MAN пишет:
Как по мне, так идея с макросом на каждого поставщика неудачная
она вытекает из
Цитата
leelera пишет:
боюсь что я не настолько опытная в написании макросов и даже не совсем представляю как это можно реализовать.
Т.е. Макросы, которые просто обрабатывают файл да, и в принципе проблем не было, а вот сценарии обработки что это и как этим пользоваться не знаю...
т.е. люди думают, что так, как они делают "проще" )
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
Алесандр, а как же Class ADO? Может лучше два/один попроще? :)
 
Может я чего не понял?.. Список макросов известен ведь? Сортированный в ComboBox (в доп. макросике) и вызов выбранного.
 
Юра, так я это и предлагал 27 Май 2013 13:33:24
Ну а реализация может быть любая - хоть даблкликом по ячейке с именем этого макроса. А диапазон можно в любой момент сортировать как угодно.
 
Да - я видел )) и не понял - почему такой вариант не устроил. Только зачем сортировать "в любой момент"? Ведь перечень макросов, как я понимаю,- неизменен - один раз отсортировали (на листе) и используем, как диапазон.
 
еще вариант: на листе список с гиперссылками. В модуле листа на событие Worksheet_FollowHyperlink вешаем код, который будет пытаться выполнить макрос, имя которого записано в этой ячейке(естественно, через Application.Run).
Конечно, можно без гиперссылок по двойному клику - но не так наглядно.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Прикольный вариант: человек привык выполнять макрос, вызывая диалог с их списком по штатной Alt+F8...
Создать форму с ListBox (почти аналог) и повесить на какое-нибудь сочетание клавиш :)
 
Шаблон-заготовка
 
Цитата
Hugo пишет:
Может лучше два/один попроще? :)
не понял
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
Ну это я к тому, что ты тут предлагаешь вместо одного универсального сложного с параметрами два простых, а там сам вместо одного/двух несложных пишешь сложный класс. Ну хорошо, используешь. Но ведь написал когда-то? :)
 
Цитата
Hugo пишет:
Ну это я к тому, что ты тут предлагаешь вместо одного универсального сложного с параметрами два простых
в целом, я предлагаю тоже, что и DEAD MAN

Цитата
Hugo пишет:
а там сам вместо одного/двух несложных пишешь сложный класс.
он не сложный, если что ) это раз и два, создан для того, чтобы делать просто
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


https://github.com/nervgh
 
Офф:
Скрытый текст
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Наверх