Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2011, 09:24   #1
clever77
Пользователь
 
Регистрация: 13.04.2011
Сообщений: 58
По умолчанию Как построить диаграмму по средствам 2-х массивов

Здравствуйте!
Помогите разобраться. Есть маленькая программка для построения диаграммы. Надо вместо диапазона Range поставить массив А ( пусть вместо D2:D6) и массив В ( пусть вместо E2:E6)
Длина массива если важно пара тысяч элементов.
Dim oChart As Chart
Set oChart = ActiveWorkbook.Charts.Add(, ActiveSheet)
oChart.ChartType = -4100
ActiveChart.SetSourceData Source:=Sheets("Лист1").Range("D2:D 6")
ActiveChart.SeriesCollection(1).XVa lues = Worksheets(1).Range("E2:E6")

Что нужно изменить в последних двух строчках?
Сколько не пытался не получается, хотя иногда даже диаграммы строит, но на последние 2 строки все равно ругается при подстановки массивов вместо указания ячеек.

Заранее благодарен
clever77 вне форума Ответить с цитированием
Старый 22.04.2011, 00:16   #2
clever77
Пользователь
 
Регистрация: 13.04.2011
Сообщений: 58
По умолчанию

Ответа не дождался сам нашел
http://forum.sources.ru/index.php?showtopic=259869
clever77 вне форума Ответить с цитированием
Старый 22.04.2011, 01:11   #3
clever77
Пользователь
 
Регистрация: 13.04.2011
Сообщений: 58
По умолчанию

Как построить диаграмму на новом листе исп 2 массива разобрался, но поместить диаграмму на определенный лист не получается....
Пытался использовать
Chart.Location(Where:=xlLocationAsO bject, Name:='Лист1')
не принимает
Как быть?
xlLocationAsObject - дословно там где данные
Если использовать range(a1:a5), тогда понятно на каком листе данные на том и строим, но у меня массив данных и к листу он не привязан, а по умолчанию строит на новом
clever77 вне форума Ответить с цитированием
Старый 22.04.2011, 07:22   #4
was3110
Форумчанин
 
Аватар для was3110
 
Регистрация: 25.04.2010
Сообщений: 254
По умолчанию

в VBA можно все. напишите на ящик, разберемся...
помогать студентам - моя вторая профессия
was3110 вне форума Ответить с цитированием
Старый 22.04.2011, 10:30   #5
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Цитата:
Сообщение от clever77 Посмотреть сообщение
Как построить диаграмму на новом листе исп 2 массива разобрался, но поместить диаграмму на определенный лист не получается....
Пытался использовать
Chart.Location(Where:=xlLocationAsO bject, Name:='Лист1')
не принимает
Как быть?
xlLocationAsObject - дословно там где данные
Если использовать range(a1:a5), тогда понятно на каком листе данные на том и строим, но у меня массив данных и к листу он не привязан, а по умолчанию строит на новом
сначала активируйте а затем перемещайте
Код:
ActiveSheet.ChartObjects("Диаграмма 1").Activate
ActiveChart.Location Where:=xlLocationAsObject, Name:="Лист3"
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
R Dmitry вне форума Ответить с цитированием
Старый 22.04.2011, 23:24   #6
clever77
Пользователь
 
Регистрация: 13.04.2011
Сообщений: 58
По умолчанию

Цитата:
Сообщение от R Dmitry Посмотреть сообщение
сначала активируйте а затем перемещайте
Код:
ActiveSheet.ChartObjects("Диаграмма 1").Activate
ActiveChart.Location Where:=xlLocationAsObject, Name:="Лист3"
Пока не получается... говорит не находит такой диаграммы
Но это еще не все Прграмма по умолчанию строит на новом листе диаграмму и размером на весь лист, а мне нужно примерно следующее


массив A.......Массив B.. Массив С
1 ......................3...........5
3.......................4.......... .6
4.......................1.......... .8 ................... Диграмма массива А............ Диаграмма масиива B ...........Диаграмма массива С

И это все на одном листе
Т.е надо опр лист размещения, размер диаграммы и ее положение на листе

Спасибо, надеюсь не оставите без внимания
clever77 вне форума Ответить с цитированием
Старый 22.04.2011, 23:58   #7
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Цитата:
Сообщение от clever77 Посмотреть сообщение
Пока не получается... говорит не находит такой диаграммы
Но это еще не все Прграмма по умолчанию строит на новом листе диаграмму и размером на весь лист, а мне нужно примерно следующее


массив A.......Массив B.. Массив С
1 ......................3...........5
3.......................4.......... .6
4.......................1.......... .8 ................... Диграмма массива А............ Диаграмма масиива B ...........Диаграмма массива С

И это все на одном листе
Т.е надо опр лист размещения, размер диаграммы и ее положение на листе

Спасибо, надеюсь не оставите без внимания
а в excel Вам что , запретили пример предоставить
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
R Dmitry вне форума Ответить с цитированием
Старый 23.04.2011, 00:07   #8
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Вывести на определённый лист можно так:
Код:
Sub tt()
ArrayForY = Array(1, 2, 3)
ArrayForX = Array("X", "Y", "Z")
 
Dim iChart As Chart, iSerie As Series
 
Set iChart = ThisWorkbook.Charts.Add
Set iSerie = iChart.SeriesCollection.NewSeries
 
iSerie.Name = "Название"
iSerie.Values = ArrayForY
iSerie.XValues = ArrayForX

iChart.Location Where:=xlLocationAsObject, Name:="Лист3"

End Sub
Как задать размер и положение - не нащупал.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 23.04.2011, 00:40   #9
clever77
Пользователь
 
Регистрация: 13.04.2011
Сообщений: 58
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Вывести на определённый лист можно так:
Код:
Sub tt()
ArrayForY = Array(1, 2, 3)
ArrayForX = Array("X", "Y", "Z")
 
Dim iChart As Chart, iSerie As Series
 
Set iChart = ThisWorkbook.Charts.Add
Set iSerie = iChart.SeriesCollection.NewSeries
 
iSerie.Name = "Название"
iSerie.Values = ArrayForY
iSerie.XValues = ArrayForX

iChart.Location Where:=xlLocationAsObject, Name:="Лист3"

End Sub
Как задать размер и положение - не нащупал.
Спасибо это работает!
iChart.Location Where:=xlLocationAsObject, Name:="Лист3"


Как задать размер и положение - не нащупал.[/QUOTE]

Должно быть что то типа такого

With Worksheets(1).ChartObjects.Add(100, 60, 250, 200)
или
ActiveSheet.ChartObjects.Add(20, 19.5, 192, 192).Select

Но при добалении какой либо из двух строк у меня получается что на лист выводится новая диаграмма, но без данных, просто пустая и как привязать к этой пустой диаграмме мои данные не знаю
clever77 вне форума Ответить с цитированием
Старый 23.04.2011, 00:46   #10
clever77
Пользователь
 
Регистрация: 13.04.2011
Сообщений: 58
По умолчанию

Нашел пример где что то подобное рассматривается, но пока не разобрался
http://www.2programmer.ru/oficprog?start=44
clever77 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как построить диаграмму в VBA? Turistovik Microsoft Office Excel 1 23.10.2010 01:08
Как построить биржевую диаграмму? ПРО Microsoft Office Excel 1 12.04.2010 00:37
Как правильно построить ER диаграмму dymych Помощь студентам 1 29.01.2010 10:43
как построить диаграмму в Visual C++ 2008? ArtiSoft Общие вопросы C/C++ 0 20.12.2009 12:12