Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/как создать Гистограмм из массива? - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » как создать Гистограмм из массива? (Макросы/Sub)
как создать Гистограмм из массива?
Excelik Дата: Вторник, 08.01.2019, 19:25 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Для создания Диаграмма/Гистограмма обычно используется "Range" к примеру Range(Cells(1, 1),Cells(10,1)). Как мне сделать диаграмм используя значения массива,в моём случаи "Klassen" / Как из массива "Klassen" сделать Range? Спасибо!

К сообщению приложен файл: 8270917.png (7.2 Kb)
 
Ответить
СообщениеДля создания Диаграмма/Гистограмма обычно используется "Range" к примеру Range(Cells(1, 1),Cells(10,1)). Как мне сделать диаграмм используя значения массива,в моём случаи "Klassen" / Как из массива "Klassen" сделать Range? Спасибо!


Автор - Excelik
Дата добавления - 08.01.2019 в 19:25
vikttur Дата: Вторник, 08.01.2019, 19:46 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

Из массива из массива Кlassen выгрузить данные на лист и создать Range
 
Ответить
СообщениеИз массива из массива Кlassen выгрузить данные на лист и создать Range

Автор - vikttur
Дата добавления - 08.01.2019 в 19:46
Alex_ST Дата: Среда, 09.01.2019, 09:04 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3199
Репутация: 606 ±
Замечаний: 0% ±

2003
Ну, например, так:[vba]
Код
Sub ShtPrntArr(Arr, Optional FirstRow& = 1, Optional FirstCol% = 1)
   ' Purpose      : вывод данных из 2D-массива Arr на текущую страницу
   ' Notes1       : по умолчанию вывод начинается с ячейки [A1]
   Cells(FirstRow, FirstCol).Resize(UBound(Arr, 1), UBound(Arr, 2)).Value = Arr
End Sub
[/vba]



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Среда, 09.01.2019, 09:08
 
Ответить
СообщениеНу, например, так:[vba]
Код
Sub ShtPrntArr(Arr, Optional FirstRow& = 1, Optional FirstCol% = 1)
   ' Purpose      : вывод данных из 2D-массива Arr на текущую страницу
   ' Notes1       : по умолчанию вывод начинается с ячейки [A1]
   Cells(FirstRow, FirstCol).Resize(UBound(Arr, 1), UBound(Arr, 2)).Value = Arr
End Sub
[/vba]

Автор - Alex_ST
Дата добавления - 09.01.2019 в 09:04
Excelik Дата: Четверг, 10.01.2019, 11:16 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
vikttur,Alex_ST , спасибо за ответ,но я бы хотел избежать вывода данных массива на лист. Мне бы хотелось каким либо образом указать массив как источник данных для Гистограмма в VBA.

Пример:
[vba]
Код

Var = Application.InputBox("Задайте число:", "Гистаграмм", 0, Type:=1)  'пользователь задаёт число

'------------- создание массива -----------------
                    Dim классы   As Variant
                    Dim i   As Long
                    ReDim классы(Var)
                    
                For i = 1 To Var
                
                    классы(i) = Cells(1, 4) + i

                Next i
    
'------------ создание Гистограмма --------------

                    Application.Run "ATPVBAEN.XLAM!Histogram", Range(Cells(1, 1), Cells(50, 1)) _
                        , Cells(52, 1), Range(UBound(классы, 1), UBound(классы, Var)), False, False _
                        , True, False  
[/vba]

Эта часть кода должна быть как Range только взята на прямую из массива, без вывода данных на лист. Надеюсь это возможно)
Range(UBound(классы, 1), UBound(классы, Var))
 
Ответить
Сообщениеvikttur,Alex_ST , спасибо за ответ,но я бы хотел избежать вывода данных массива на лист. Мне бы хотелось каким либо образом указать массив как источник данных для Гистограмма в VBA.

Пример:
[vba]
Код

Var = Application.InputBox("Задайте число:", "Гистаграмм", 0, Type:=1)  'пользователь задаёт число

'------------- создание массива -----------------
                    Dim классы   As Variant
                    Dim i   As Long
                    ReDim классы(Var)
                    
                For i = 1 To Var
                
                    классы(i) = Cells(1, 4) + i

                Next i
    
'------------ создание Гистограмма --------------

                    Application.Run "ATPVBAEN.XLAM!Histogram", Range(Cells(1, 1), Cells(50, 1)) _
                        , Cells(52, 1), Range(UBound(классы, 1), UBound(классы, Var)), False, False _
                        , True, False  
[/vba]

Эта часть кода должна быть как Range только взята на прямую из массива, без вывода данных на лист. Надеюсь это возможно)
Range(UBound(классы, 1), UBound(классы, Var))

Автор - Excelik
Дата добавления - 10.01.2019 в 11:16
_Boroda_ Дата: Четверг, 10.01.2019, 11:44 | Сообщение № 5
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Тогда засуньте данные в именованный диапазон, а его уже подставьте в источник данных для диаграммы
Или вообще в диаграмме в формуле ряда сразу пишите что-то типа
Код
=РЯД(;{"неделя 1";"неделя 2";"неделя 3";"неделя 4"};{43;30;29;28};1)

Все это конечно макросом. С помощью макрорекодера можно посмотреть как
Во вложении пример диаграммы без ссылки на данные листа или именованный диапазон
К сообщению приложен файл: 7941902555.xls (32.0 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТогда засуньте данные в именованный диапазон, а его уже подставьте в источник данных для диаграммы
Или вообще в диаграмме в формуле ряда сразу пишите что-то типа
Код
=РЯД(;{"неделя 1";"неделя 2";"неделя 3";"неделя 4"};{43;30;29;28};1)

Все это конечно макросом. С помощью макрорекодера можно посмотреть как
Во вложении пример диаграммы без ссылки на данные листа или именованный диапазон

Автор - _Boroda_
Дата добавления - 10.01.2019 в 11:44
Alex_ST Дата: Четверг, 10.01.2019, 21:49 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3199
Репутация: 606 ±
Замечаний: 0% ±

2003
засуньте данные в именованный диапазон, а его уже подставьте в источник данных для диаграммы
А это вполне может прокатить! hands



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщение
засуньте данные в именованный диапазон, а его уже подставьте в источник данных для диаграммы
А это вполне может прокатить! hands

Автор - Alex_ST
Дата добавления - 10.01.2019 в 21:49
Мир MS Excel » Вопросы и решения » Вопросы по VBA » как создать Гистограмм из массива? (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!