|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
25.07.2013, 10:15 | #1 |
Пользователь
Регистрация: 15.12.2009
Сообщений: 49
|
Продвинутый фильтр с автопростановкой на VBA
Здравствуйте, уважаемые форумчане!
Есть прайс-листы, которые нужно прописывать марку, наименование, изготовителя, размеры, цены и другие характеристики. То есть всего из перечисленного выделен отдельный столбец. Допустим, я привел таблицу в порядок и нужно проставить только цены. Хочу реализовать на VBA следующий механизм: Выставляю ячейку напротив одного из множества повторяющихся наименований. Определяю текущий адрес ячейки через ActiveCell.Address. Эта часть кода работает. 1. Затем необходимо вычленить номер строки (как?), 2. и если выставлен чекбокс, который соответствует одному из столбцов характеристик прайс-листа, произвести поиск по значению ячейки на пересечении активной ячейки с выбранными столбцами и автоматическую простановку ячеек. Привожу юзерформу для наглядности: http://hostingkartinok.com/show-imag...58b781e702ce39 3. Если Столбец активной ячейки соответствует одному из столбцов выставляемых характеристик, чекбокс этого столбца должен быть неактивным. То есть хочу создать продвинутый аналог фильтра MS Office, заточенный именно под мою форму. Во всяком случае, мне кажется, что он будет более продвинутым)). Надеюсь, на Вашу помощь. Последний раз редактировалось Lamo; 25.07.2013 в 10:55. Причина: Доработка идеи |
25.07.2013, 10:43 | #2 |
Старожил
Регистрация: 08.02.2012
Сообщений: 2,173
|
Т.е., как я понял, вы хотите сделать так:
- вызывается форма и выбираются столбцы по которым будет производиться фильтрация - выделяется ячейка прайс-листа и, если столбец используется для фильтрации, то производится фильтрация, по данному значению и сразу возникает два вопроса: - по какому условию должен сниматься фильтр? - как быть, если выделена не одна ячейка, а область? з.ы. зачем использовать форму, если можно прямо в заголовке выделить ячейку указывающую на использование в фильтрации? и пользователям будет заметно удобнее, чем запоминать сочетания клавиш...
Правильно поставленная задача - три четверти решения.
Последний раз редактировалось DiemonStar; 25.07.2013 в 10:46. |
25.07.2013, 10:53 | #3 | |
Пользователь
Регистрация: 15.12.2009
Сообщений: 49
|
Цитата:
- выделяется ячейка прайс-листа и, если столбец используется в чекбоксе, то производится поиск по значению ячейки на пересечении активной ячейки с выбранными столбцами и автоматическую простановку ячеек, по данному значению - Да, по значению ячейки на пересечении активной ячейки с выбранными столбцами. и сразу возникает два вопроса: - по какому условию должен сниматься фильтр? - Блин, вот тут я уже соврал. Фильтр в принципе получается не нужен, чтобы его каждый раз не сбрасывать и экономить время. Тогда придется реализовать поиск по значению ячейки на пересечении активной ячейки с выбранными столбцами и автоматическую простановку ячеек. - как быть, если выделена не одна ячейка, а область? - Не предусмотрено, только по значению одной ячейки. Кстати, спасибо, надо будет сделать выскакивающее окошко "Выдели ячейку, а не область) если выделена область и возможность настройки этого окошка в юзерформе: (Включить/Выключить - Горячие клавиши). |
|
25.07.2013, 11:01 | #4 |
Пользователь
Регистрация: 15.12.2009
Сообщений: 49
|
Друзья, помогите кто чем может, кто одним пунктом, допустим 1. Затем необходимо вычленить номер строки (как?), кто общим представлением о задаче.
|
25.07.2013, 12:18 | #5 |
Старожил
Регистрация: 08.02.2012
Сообщений: 2,173
|
что-то такое требуется?
Правильно поставленная задача - три четверти решения.
|
25.07.2013, 12:37 | #6 |
Пользователь
Регистрация: 15.12.2009
Сообщений: 49
|
DiemonStar, Если честно, только вчера написал свой первый месседжбокс и, в силу своей неопытности не совсем понял как это работает.
Как запустить или проверить работу вашего скрипта? У меня 2010 офис. Готов даже сделать небольшую материальную помощь за поддержку в разработке скрипта. |
25.07.2013, 12:44 | #7 |
Старожил
Регистрация: 08.02.2012
Сообщений: 2,173
|
Вы выделяете ячейку таблицы, например, Товар 1 и во всех остальных строках, где содержится Товар1, заполнятся единицы измерения из строки с выделенной ячейкой. Если измените значение над заголовком "количество" на ИСТИНА, то помимо единиц измерения будет копироваться и количество из выделенной строки.
Если это не то, что вы хотели, то попробуйте описать что у вас есть, чем это не устраивает и что вы хотите получить в итоге. Если честно, мне до сих пор непонятно, чего вы хотите добиться.
Правильно поставленная задача - три четверти решения.
Последний раз редактировалось DiemonStar; 25.07.2013 в 12:46. |
25.07.2013, 13:20 | #8 |
Пользователь
Регистрация: 15.12.2009
Сообщений: 49
|
Смотрите, есть таблицы, которые могут иметь несколько тысяч строк:
Пример: Расставлять цены вручную долго и муторно. Для этого используем фильтры. Пример фильтрованного куска таблицы: Я же хочу реализовать это в виде макроса. Выставляем в чекбоксах нужные галочки. Каждый чекбокс отвечает за поиск в своем столбце. Выставили галочки жмем Ок. Выходим. Далее идем в форму прайс-листа, ставим цену, допустим в рублях, макрос ищет повторы в столбцах с выставленными в юзерформе чекбоксами, если находит повторы (как на втором скриншоте), то автоматом, без фильтрации, проставляет цены на эти повторы. Если повторов нет, то и вбивания цены нет. То есть достигается экономия времени. В процессе подготовки формы макрос тоже можно использовать для заполнения повторяющихся строк. Вроде понятно расписал. |
25.07.2013, 13:32 | #9 |
Старожил
Регистрация: 08.02.2012
Сообщений: 2,173
|
у вас есть пример отбора по "ручной балансировочный клапан". Цены во всех позициях различные. Вопрос: как макрос сможет определить, какую цену вбивать?
Правильно поставленная задача - три четверти решения.
|
25.07.2013, 14:02 | #10 |
Пользователь
Регистрация: 15.12.2009
Сообщений: 49
|
Цены разные потому, что диаметры разные. Там столбец "Размеры/Диаметры"(не подписан), на него фильтр не выставлен, если бы выставили и этот фильтр, допустим, по 25-му диаметру, то остались бы последние три позиции. Суть работы макроса, указать активную ячейку, чекбоксы с выставленными галочками служат параметрами поиска. То есть если значения поисковых столбцов в активной строке повторяются ниже или выше, то на них автоматически проставляются цены.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как сделать, чтобы если открываешь один файл, то автоматически открывался другой? | Artem_85 | Microsoft Office Excel | 10 | 22.02.2012 14:02 |
Как программно включить чекбокс??? | xpams | HTML и CSS | 2 | 08.01.2012 19:18 |
Если, то +1. Как сделать? | Ok-Alex | Microsoft Office Excel | 3 | 01.08.2011 19:09 |
Как привязать чекбокс к ячейке? | Bezdar | Microsoft Office Excel | 1 | 24.12.2010 13:59 |
Возможно ли такое...если да то как это сделать?! | prizrak1390 | Общие вопросы Delphi | 9 | 03.01.2008 10:14 |