Всем ДВС! Пришлось давеча повозиться с индексированием многоуровневых списков. Наплодил несколько макросов для произвольного уровня и для автоматической привязки к уровню группировки строк. Может пригодтся кому ... Одна беда - при перегруппировке строк не происходит автоматического пересчёта. Я этот вопрос уже пытался провентилировать тут, но может у кого принципиално новые заходы придумаются?
Всем ДВС! Пришлось давеча повозиться с индексированием многоуровневых списков. Наплодил несколько макросов для произвольного уровня и для автоматической привязки к уровню группировки строк. Может пригодтся кому ... Одна беда - при перегруппировке строк не происходит автоматического пересчёта. Я этот вопрос уже пытался провентилировать тут, но может у кого принципиално новые заходы придумаются?Формуляр
и даже UDF с Application.Volatile внутри не знает об изменении уровня группировки.
есть вариант, но он ОЧЕНЬ плохой: 1) запустить макрос с бесконечным циклом и с DoEvents внутри 2) с необходимой периодичностью заполнять массив чисел с OutlineLevel для UsedRange 3) сравнивать его с "эталонным" предыдущим массивом и, если где чего не совпало, то...
либо по аналогичной схеме - подвесить на процедуру с периодическим самовызовом по OnTime
но, во-первых, при удалении/добавлении строк нужны будут дополнительные извраты а, во-вторых, сам по себе способ - уже изврат
более редкий вызов "по запросу" - не вариант? при сохранении, перед печатью или по кнопке?
и даже UDF с Application.Volatile внутри не знает об изменении уровня группировки.
есть вариант, но он ОЧЕНЬ плохой: 1) запустить макрос с бесконечным циклом и с DoEvents внутри 2) с необходимой периодичностью заполнять массив чисел с OutlineLevel для UsedRange 3) сравнивать его с "эталонным" предыдущим массивом и, если где чего не совпало, то...
либо по аналогичной схеме - подвесить на процедуру с периодическим самовызовом по OnTime
но, во-первых, при удалении/добавлении строк нужны будут дополнительные извраты а, во-вторых, сам по себе способ - уже изврат
более редкий вызов "по запросу" - не вариант? при сохранении, перед печатью или по кнопке?ikki
помощь по Excel и VBA ikki@fxmail.ru, icq 592842413, skype alex.ikki
команда не производит действий, поджигающих какие-либо события => нужно изменить саму команду
с 2003-м уже давно не работал, поэтому не помню, можно ли подломить OnAction встроенного контрола, если нельзя (сомневаюсь в этом), то рядом со встроенным нарисуешь свой с такой же зеленой стрелочкой и соответствующим функционалом (группировать + обновить нумерацию), а встроенный Визибл=на...
все изменения повесить на открытие книги (надстройки), ресет всех команд - на закрытие там еще горячие клавиши есть, их тоже на...
ps в >=2007 - переопределение команды делается одной xml-строкой
команда не производит действий, поджигающих какие-либо события => нужно изменить саму команду
с 2003-м уже давно не работал, поэтому не помню, можно ли подломить OnAction встроенного контрола, если нельзя (сомневаюсь в этом), то рядом со встроенным нарисуешь свой с такой же зеленой стрелочкой и соответствующим функционалом (группировать + обновить нумерацию), а встроенный Визибл=на...
все изменения повесить на открытие книги (надстройки), ресет всех команд - на закрытие там еще горячие клавиши есть, их тоже на...
ps в >=2007 - переопределение команды делается одной xml-строкойСаня
рядом со встроенным нарисуешь свой с такой же зеленой стрелочкой и соответствующим функционалом (группировать + обновить нумерацию), а встроенный Визибл=на...
Молодец, Саня! Просто и эффективно! 5 баллов!
Quote (Саня)
рядом со встроенным нарисуешь свой с такой же зеленой стрелочкой и соответствующим функционалом (группировать + обновить нумерацию), а встроенный Визибл=на...
Молодец, Саня! Просто и эффективно! 5 баллов!Alex_ST
С уважением, Алексей MS Excel 2003 - the best!!!
Сообщение отредактировал Alex_ST - Четверг, 20.09.2012, 09:27