|
|
|
Как сделать процедуру для любого изменения в xls
|
|||
|---|---|---|---|
|
#18+
Как сделать процедуру, которая бы работала при любых изменениях в файле xls? Конкретнее - для старых версий Excel при любых изменениях в сводных таблицах нужно вызвать процедуру, которая бы передёргивала формат диаграмм (загружала сохранённый). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2007, 13:23 |
|
||
|
Как сделать процедуру для любого изменения в xls
|
|||
|---|---|---|---|
|
#18+
Не очень понятно Что значит передёргивала формат диаграмм? Если просто обновить диаграммы, так они сами обновляются при изменениии исходных данных! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2007, 13:43 |
|
||
|
Как сделать процедуру для любого изменения в xls
|
|||
|---|---|---|---|
|
#18+
Меня тоже интересует аналогичный вопрос, если я например из 1С создаю новую строку на листе Excel как-то можно засечь это событие средствами VBA ну там процедуркой типа CommandButton1_Click()? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2007, 13:57 |
|
||
|
Как сделать процедуру для любого изменения в xls
|
|||
|---|---|---|---|
|
#18+
С форматом всё ок - я отформатировал диаграмму как надо, записал это в специальный тип, и теперь когда надо вызову chrt.Chart.ApplyCustomType ChartType:=xlUserDefined, TypeName:="ыыыыыы" А вот как событие сделать - не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2007, 14:03 |
|
||
|
Как сделать процедуру для любого изменения в xls
|
|||
|---|---|---|---|
|
#18+
кстати, Worksheet_Change не помогает - не ловит изменение сводной диаграммы, вставленной в лист. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2007, 14:07 |
|
||
|
Как сделать процедуру для любого изменения в xls
|
|||
|---|---|---|---|
|
#18+
detailкстати, Worksheet_Change не помогает - не ловит изменение сводной диаграммы, вставленной в лист. Вообще я опять ничего не понял, т.к. вы не хотите нормаль всё описать, а ещё лучше пример. но всё же: Изменение сводной диаграммы у вас как происходит? Может там же указать и требуемый тип. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2007, 14:42 |
|
||
|
Как сделать процедуру для любого изменения в xls
|
|||
|---|---|---|---|
|
#18+
Хммм, ну как проще объяснить-то... Есть просто файл, в котором сводная таблица и по ней построенная сводная диаграмма. Допустим, такая: 1) категории страниц - магазины 2) категории строк - дата (неделя) 3) категория столбцов - показатель. Показателей 3: выручка, себестоимость, рентабельность. Поле Рентабельность - вычисляемое в самой сводной таблице. По этим трём показателям я сделал диаграмму. Естественно, на одной оси невозможно отложить обороты в рублях и % рентабельности. Назначаю вторую ось для рентабельности. Такой отчёт ложится в папку с общим доступом и его может брать пользователь. Если он поменяет категорию страниц (выберет конкретный магазин) или строк (даты), то формат диаграммы получится стандартным, т.е. рентабельность по той же оси (тут была ссылка, где написано, что "слетает", но это сейчасне важно). Я сохранил свой формат в типах диаграмм, как дополнительный. Его можно вызвать строкой из VBA, приведённой выше. Мне собственно нужно чтобы, когда пользователь вращает данные в сводной таблице, как описано выше, вызывался мой скрипт, устанавливающий формат диаграммы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2007, 19:57 |
|
||
|
Как сделать процедуру для любого изменения в xls
|
|||
|---|---|---|---|
|
#18+
Изменения в сводной таблице отлично отлавливаются Private Sub Worksheet_Change(ByVal Target As Range) А если имеется ввиду изменение сводной диаграммы, то расположи исходную сводную для диаграммы на том же листе что и диаграмма и тоже всё будет ок. или если сводная табл для диаграммы на другом листе, то код поместите в модуль того же листа где исходная сводная, а не того где диаграмма! А вообще я лично не очень люблю сводные диаграммы. Предпочитаю обычные, а уже данные для них можно и из сводных потянуть или прямиком из исходных данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2007, 23:11 |
|
||
|
Как сделать процедуру для любого изменения в xls
|
|||
|---|---|---|---|
|
#18+
Проблема: если сохранить формат диаграммы под своим типом, на другом компьютере этот тип не будет доступен. Можно ли сохранить тип в самом файле? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2007, 12:26 |
|
||
|
Как сделать процедуру для любого изменения в xls
|
|||
|---|---|---|---|
|
#18+
Короче, воркэраунд: на самом деле, при обновлении сводной диаграммы слетает не всё форматирование, а только относящееся к рядам. Поэтому обход такой: сбрасываем форматирование, запускаем запись макроса, устанавливаем нужные форматы рядов данных (только их!). Из получившегося макроса берём нужный код. В макросе запишется установка всех свойств, но на самом деле нужно менять только то, что нужно менять (каламбур), остальное будет дефолтным. Мой код (на листе - 7 диаграмм) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2007, 15:09 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=34670131&tid=2163676]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
176ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 249ms |
| total: | 520ms |

| 0 / 0 |
