|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.02.2009, 02:09 | #1 |
Новичок
Джуниор
Регистрация: 13.02.2009
Сообщений: 0
|
Задача - расчёт нагрузки по преподавателям с контролем
Есть задача, которую я не могу выполнить уже почти три месяца - банально не хватает времени и сил глубоко копать VBA.
Коротко: во внешней по отношению к Excel программе (1С) формируется Ecxel'евский файл. Шаблон хранить негде, поэтому единственное, чем можно воспользоваться для решения - модулем книги (подгружаемым из файла .bas). Для этой книги нужно (теперь длинно): 1. Запретить правку первого листа (сформированного в 1С) вручную, причём так, чтобы пользователь не мог отключить макрос при открытии; 2. По горячим клавишам при нажатии на первом листе на любой из строк, где заполнена первая колонка, переходить на второй лист (при отсутствии - его создавать и заполнять по данным шапки первого и текущей строки), ставить неотключаемый фильтр по значению первой колонки текущей строки, если подходящих строк нет - создавать новую, копируя данные из текущей; 3. На каждый такой переход под отфильтрованной таблицей на втором листе выводить значения соотв. колонок первого листа и итоги по отфильтрованным строкам плюс напоминание, какие комбинации горячих клавиш доступны; 4. На втором листе по другой комбинации горячих клавиш вводить новую строку, копируя данные из строки первого листа (кроме одной колонки,которая должна быть пуста), значение в первой колонке которой совпадает с текущим значением фильтра на втором листе, и вычитая из значений нужных колонок итог по уже существующим "дочерним" строкам, после этого, конечно, пересчитывая и выводя итоги аналогично п.3; 5. По возвращении на первый лист в энную колонку записывать через запятую уникальные значения той же колонки "дочерних" строк; 6. По горячим клавишам и перед записью файла контролировать суммы - чтобы для каждой строки первого листа, где заполнена первая колонка, итог по определённым колонкам "дочерних" строк совпадал бы со значениями в колонках "родительской"; 7. Предоставить пользователю возможность-таки отключения фильтра на втором листе, но строго по горячим клавишам и с немедленным контролем всех сумм; 8. Контрольное сообщение должно выводиться в формате, удобном для пользователя (то есть MsgBox не подходит - длинные строки в нём не смотрятся, да и к тому же - сколько пользователь запомнит, что у него не совпало?), с указанием как минимум номера родительской строки и колонок, по которым выявлено расхождение. Ффух. Напоминаю, что вся задача в идеале должна быть решена в формате файла модуля (.bas). Уточняю: я однэсник, а не VBAшник. И последний срок сдачи - следующая пятница, 20 февраля. И, фак мой мозг, времени у меня нет, как нет и нормального справочника по VBA. Гарантирую оплату в разумных пределах, но и предложения на халяву рассмотрю . Во вложении: то, что на первом листе - исходная таблица. Второй лист создаётся автоматически по описанной комбинации ГК. P.S. Вроде бы это последняя версия (в смысле модуля). |
13.02.2009, 02:16 | #2 |
Новичок
Джуниор
Регистрация: 13.02.2009
Сообщений: 0
|
Да, для связи - esteraddi@gmail.com.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
отображение нагрузки процессора. | Mazaxaka | Общие вопросы Delphi | 2 | 03.02.2009 18:50 |
Пожалуйста, подскажите можно ли и как сделать в Excel расчёт процентов? | magi | Microsoft Office Excel | 8 | 28.09.2007 22:48 |