powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel: макрос обновления диаграммы
10 сообщений из 10, страница 1 из 1
Excel: макрос обновления диаграммы
    #36965887
NYMEZIDE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в VB не силен.

Поэтому прошу помощи в макросе обновления SetSourceData у диаграммы.

В общем суть такая, есть много листов документа, на каждом листе диаграмма обновляется макросом:
Код: plaintext
1.
2.
3.
4.
5.
Sub RefreshChart(nRowBeg, nRowEnd)
  Dim oChart As Chart
  Set oChart = ActiveSheet.ChartObjects( 1 ).Chart
  oChart.SetSourceData (ActiveSheet.Range(Cells(nRowBeg,  1 ), Cells(nRowEnd,  2 )))
  oChart.PlotBy = xlRows
End Sub

Когда листов становится очень много, происходит смещение и диаграммы начинают смотреть на другие листы (первые). К примеру лист30 смотрит не на себя, а на лист4.
Отчет формируется кусочками(листами) - поэтому происходит такая ерунда.

Помогите написать макрос чтобы обновить у Chart активный лист. Чтобы он смотрел на себя, а не запоминал прямой индекс листа.
Хочу прогнать его вконце формирования отчета по всем страницам и сделать правильное обновление.
...
Рейтинг: 0 / 0
Excel: макрос обновления диаграммы
    #36966118
NYMEZIDE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите возвратить данные Range у моего Chart !

Как это можно сделать?
...
Рейтинг: 0 / 0
Excel: макрос обновления диаграммы
    #36966583
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используйте для создания диаграмм именованные диапазоны, измените имя - обновится диаграмма.
...
Рейтинг: 0 / 0
Excel: макрос обновления диаграммы
    #36966657
NYMEZIDE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DeggasadИспользуйте для создания диаграмм именованные диапазоны, измените имя - обновится диаграмма.

а не дадите пример?

у меня сводный отчет будет содержать около 100 листов. реально ли сделать столько уникальных именованных диапазонов?

а можно ли создать переменную для конкретного листа типа Range ? чтобы к примеру возвратить его и чтобы он был уникален для листа.
...
Рейтинг: 0 / 0
Excel: макрос обновления диаграммы
    #36966666
Фотография vikttur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрите по ссылке, одна тема из многих похожих:
http://www.planetaexcel.ru/forum.php?thread_id=20829
...
Рейтинг: 0 / 0
Excel: макрос обновления диаграммы
    #36966741
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Excel: макрос обновления диаграммы
    #36967421
NYMEZIDE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пишу подробности формирования.

Есть 5 отчетов с диаграммами. Они формируются как 5 отдельных документов.
Формирует их приложение. Приложение задает параметры диаграммы: где данные лежат.
По отдельности все существует замечательно.

Появилась новая функция - сводный отчет: все эти 5 диаграмм в одном документе.
Я их делаю так: создаю 5 документов. А затем перебрасываю все листы в общий документ.
Вот тут и происходит косяк с листами.

В отдельных документах они все почти завязаны на свой лист, который первый!
И в Сводном отчете, при копировании они начинают смотреть на первый лист! А должны смотреть на свой.

Я хоть и задавал им ActiveSheet.Range - они запоминают индекс. И при копировании индекс остается.

Мне надо обновить все диаграммы - показать всем, что надо смотреть на ActiveSheet.Range. На свой лист, а не на первый.

Надеюсь понятно объяснил.
...
Рейтинг: 0 / 0
Excel: макрос обновления диаграммы
    #36967914
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NYMEZIDE,

Теперь понятно.
Рецепт: отказаться от использования ActiveSheet и никогда-никода не использовать его в реальной работе.
Макрос приведенный в первом посте в принципе работоспособный, но только в пределах одного листа, того который был на экране в момент запуска маркоса.
Судя по макросу, ты уже умеешь создавать объект типа Chart и пользоваться им. Пора изучать объект типа Worksheet и коллекцию Worksheets() у рабочих книг.
...
Рейтинг: 0 / 0
Excel: макрос обновления диаграммы
    #36968368
NYMEZIDE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White OwlNYMEZIDE,

Теперь понятно.
Рецепт: отказаться от использования ActiveSheet и никогда-никода не использовать его в реальной работе.
Макрос приведенный в первом посте в принципе работоспособный, но только в пределах одного листа, того который был на экране в момент запуска маркоса.
Судя по макросу, ты уже умеешь создавать объект типа Chart и пользоваться им. Пора изучать объект типа Worksheet и коллекцию Worksheets() у рабочих книг.

я бы рад конечно. но на след.неделе сдавать проект. и тут этот косяк вылез...
а как может мне помочь Worksheet ? там можно диапазоны сохранить, для всех листов?
...
Рейтинг: 0 / 0
Excel: макрос обновления диаграммы
    #36971045
NYMEZIDE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос закрыт.
Решил проблему путем сохранения первичного диапазона в память и последующим повторным вызовом макроса обновления диаграммы после копирования листа в сводный отчет.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel: макрос обновления диаграммы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]