Нужна аналогичная программа (надстройка, макрос) для Excel?

Оформите заказ, не забыв прикрепить примеры файлов, и описать, что и как должно работать.

Отображение этапов работ на шкале времени

Отображение этапов работ на шкале времени

Программа предназначена для отображения этапов выполнения работ на шкале времени в Excel.

В качестве исходных данных выступает таблица, заголовками которой являются названия этапов, а в строках, для каждой работы, указана дата каждого этапа.

Шкала времени состоит из двух строк, заполненных датами при помощи формул.
В первой строке - дата начала временного интервала, во второй строке - дата его окончания.

Для каждой даты, макрос ищет её место на шкале времени (подходящий временной интервал),
и располагает значок, соответствующий текущему этапу, в соответствующей ячейке.

Значок этапа ставится в соответствии с положением даты во временном интервале.
Например, если интервал временной шкалы - 1 месяц, а дата - 22-е число, - то значок будет расположен в правой части ячейки.
Если же дата - это первое число месяца, - то значок будет размещен вплотную к левому краю ячейки

Запуск макроса осуществляется нажатием клавиши F5 (как в большинстве других программ, эта клавиша используется для обновления страницы)

При запуске макроса, все существующие на листе фигуры (значки) удаляются, и расставляются заново.

Для пересчёта формул (таблицы со случайными датами) нажмите клавишу F9.
Если после пересчёта формул запустить макрос - значки будут расставлены в другом порядке (поскольку даты в таблице изменятся)

На втором листе файла, можно задать значки для вставки на временную шкалу.
Единственное требование к значкам - чтобы они целиком умещались в ячейку
(для каждого этапа, макрос ищет значок, расположенный внутри ячейки, - при помощи функции getShape)

 

В первом прикреплённом к статье файле (с расширением XLSB) используются формулы =СЛУЧМЕЖДУ() и =КОНМЕСЯЦА() для формирования массива случайных дат и шкалы времени,
поэтому первый файл не будет работать в версиях Excel до 2007-й (формула =СЛУЧМЕЖДУ() появилась только в Excel 2007)

Во втором файле (с расширением XLS) - та же самая программа, только формулы в таблицах заменены значениями.
Второй файл подойдёт для тестирования макроса в старых версиях Excel (97 - 2003)


Ещё один прикреплённый файл - timeline_v2.xlsb - это новая версия программы, с использованием модулей классов.
(работает только в Excel 2007 и новее, по причинам, описанным выше)

Она позволяет создавать более сложные графики этапов на шкале времени
(задаётся тип этапа - начало, середина, или окнчание)
Поддерживаются также двойные этапы, где картинка показывает их протяженность (от начала до конца)
Отображение этапов работ на шкале времени

 

Комментарии

Предложения. shs.DrawingObjects.Delete удаляет все с листа, что не совсем корректно (в идеале удаление тех объектов, которые создал макрос), например в моем случае заменил строчку на:

For Each SHP In shs.Shapes ' удаляем все графические объекты с листа, за исключением ActiveX CommandButton control
If Not SHP.Type = 12 Then
SHP.Delete
End If
Next

Вторая часть рационализаторского предложения касательно группированных ячеек. Если они сгруппированы - получаем ошибку (скрипт не берет данные из группированной ячейки). Если столбец/строка скрыты - так же ошибка. Т.к. при развернутой структуре служебные метки занимают значительную часть пространства.

Здравствуйте.
Сделать, конечно, можно. Что конкретно поменять - так сразу и не скажу.
Оформляйте заказ на сайте - что-нибудь придумаем.

Добрый день. Возможно ли один и тот же этап делать дважды/трижды? Что для этого нужно поменять в макросе и на вкладке "график". Спасибо заранее за ответ