Цитата:
Сообщение от
fialka
я вывожу на один лист, но диаграммы накладываются друг на друга.
Цитата:
Сообщение от
fialka
Да и не верно это будет. указывать куда конкретно переместить диаграмму.
ох, для начала достигните консенсуса среди себя
чего хотите-то в итоге? или на разных листах разместить?
Цитата:
Сообщение от
fialka
но как прописать такое ... /
ActiveWindow.Visible = False
Windows("Книга1").Activate
ActiveSheet.ChartObjects("Диагр. 1").Activate
ActiveChart.ChartArea.Select
COMSeries.Shapes("Диагр. 1").IncrementLeft -222#
ActiveSheet.Shapes("Диагр. 1").IncrementTop -159#
Затрудняюсь написать.
Ну как написать... По аналогии с тем, что у вас написано выше для других объектов Excel. Отталкиваясь от объекта Application (у вас это - COMappl). Как обычно для COM-объекта. Спускаясь по иерархии объектов. Не используя более одной "точки" за раз (из-за позднего связывания).
Ко всем этим строчкам можно для наглядности приставить слева "Application." и сразу всё становится понятнее. Строчки типа:
ActiveSheet.ChartObjects("Диагр. 1").Activate
ActiveChart.ChartArea.Select
можно сразу удалить. Они олицетворяют ваш выбор мышкой во время записи макроса и совершенно не нужны в автоматическом режиме.
Ну, и хелп в Excel по этим новым объектам поглядеть надо. У объекта Shape есть не только свойства IncrementLeft и IncrementTop, но и просто Left и Top - так что можно сразу позиционировать диаграмму в конкретное место, а не передвигать ее из места по умолчанию.
Цитата:
Сообщение от
fialka
Да и не верно это будет. указывать куда конкретно переместить диаграмму.
Ведь от условий запуска они могут быть разные .
вот тут-то и загвоздка.
Могу предположить, что разные, но наверняка в любом наборе ваших диаграмм среди них будет первая, вторая... пятая, шестая... Ну, так и спланируйте заранее диаграммоместа на вашем листе (координаты Left, Top). Например, так:
1 2
3 4
5 6
или, скажем, так:
1 4
2 5
3 6