powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Excel: макрос обновления диаграммы
6 сообщений из 6, страница 1 из 1
Excel: макрос обновления диаграммы
    #36966227
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 активный лист. Чтобы он смотрел на себя, а не запоминал прямой индекс листа.
Хочу прогнать его вконце формирования отчета по всем страницам и сделать правильное обновление.

Update:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Sub RefressAllChars()

    For i =  1  To ActiveWorkbook.Sheets.Count
        
 
        Dim oChart As Chart
  Set oChart = ActiveSheet.ChartObjects( 1 ).Chart
  oChart.SetSourceData (ActiveSheet.Range(      Как сюда возвратить его же Range ?         ))
  oChart.PlotBy = xlRows
        
        

    Next i
    
    

End Sub

Можно ли как нибудь втащить данные Range которые я задавал через SetSourceData ?
...
Рейтинг: 0 / 0
Excel: макрос обновления диаграммы
    #36966774
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NYMEZIDE,

Прочитал четыре раза - нифига не понял.

Почему диаграмма начинает смотреть на другой лист и что значит вообще в вашем понимании "смотреть"? Что за смещение и почему происходит? Пользователи химичат? Код неправильно работает? Почему вы не можете повторить во втором коде то же, что делаете в первом?

В общем попробуйте переизложить все по-другому.
...
Рейтинг: 0 / 0
Excel: макрос обновления диаграммы
    #36967417
NYMEZIDE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пишу подробности формирования.

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

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

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

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

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

Надеюсь понятно объяснил.
...
Рейтинг: 0 / 0
Excel: макрос обновления диаграммы
    #36967430
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Теперь понятно.
Только теперь непонятно, в чем трудность. У вас же есть код (первый приведенный фрагмент), почему нельзя им воспользоваться?
...
Рейтинг: 0 / 0
Excel: макрос обновления диаграммы
    #36967503
NYMEZIDE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProТеперь понятно.
Только теперь непонятно, в чем трудность. У вас же есть код (первый приведенный фрагмент), почему нельзя им воспользоваться?

он подразумевает передачу (nRowBeg, nRowEnd) в качестве параметров.
А они уже неизвестны после формирования первых диаграмм.

Вот если бы можно было сохранить эти параметры как уникальные для каждого листа. Можно переменную для листа задать?
...
Рейтинг: 0 / 0
Excel: макрос обновления диаграммы
    #36967510
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NYMEZIDEА они уже неизвестны после формирования первых диаграмм.

Можно переменную для листа задать?

ну так бы и сказали, а то ходите вокруг да около

Переменные, если не ошибаюсь, только для книги можно задать, но не для листа.
А в чем проблема хранить эти данные непосредственно в ячейках листа?

ЗЫ: Также посмотрите свойство .Address у SourceData диаграммы после переноса. Может оттуда что-то можно извлечь.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Excel: макрос обновления диаграммы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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