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

Вход

Регистрация

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

 

= Мир MS Excel/Вертикальная ось графика, задать параметры макросом - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вертикальная ось графика, задать параметры макросом (Макросы/Sub)
Вертикальная ось графика, задать параметры макросом
antycapral Дата: Четверг, 10.03.2016, 12:48 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 52
Репутация: 5 ±
Замечаний: 0% ±

Excel 2016
Доброго и солнечного дня форумчане.
Снова к вам за подсказкой и помощью.
Есть ежемесячные отчеты в виде графиков по различным данным, которые в зависимости от месяца имеют свои макс и мин показатели, в следствии чего приходиться многое делать руками чтоб было красиво.
Написал макрорекордером то что нужно. но как всегда через выделения и работу с выделенными частями графика, что не есть хорошо. Как именно работать с самим графиком разобраться не смог. Дебаггер ругаеться изза моей неграмотности.
Вот код и пожелания:
[vba]
Код

' сбросить вертикальную ось в дефолт

    ActiveSheet.ChartObjects("Диаграмма 1").Select ' выделяем график
    ActiveChart.SetElement (msoElementPrimaryValueAxisShow) ' далее отображаем вертикальную ось
    ActiveChart.Axes(xlValue).Select ' выделяем вертикальныю ось
    ActiveChart.Axes(xlValue).MinimumScaleIsAuto = True ' далее  сброс макимальных и минимальных показателей на авто
    ActiveChart.Axes(xlValue).MaximumScaleIsAuto = True
    ActiveChart.SetElement (msoElementPrimaryValueAxisNone) ' скрываем вертикальную ось
[/vba]
Знаю что есть более правильный код, но знаний нехватает((

[vba]
Код

' задаем макс и мин значения вертикальной оси
Макс = Range("AA29").Value
Мин = Range("AA30").Value
' далее через выделения и работу с выделением настраиваем выделенный график
    ActiveSheet.ChartObjects("Диаграмма 1").Select
    ActiveChart.SetElement (msoElementPrimaryValueAxisShow)
    ActiveChart.Axes(xlValue).Select
    ActiveChart.Axes(xlValue).MinimumScale = Мин
    ActiveChart.Axes(xlValue).MaximumScale = Макс
    ActiveChart.SetElement (msoElementPrimaryValueAxisNone)
[/vba]
Необходимо сделать код , который сразу будет работать с нужным графиком, с вертикальной осью, их на текущем листе 4 графика, в каждом свои показатели и параметры которые берем из определенных ячеек на текущем листе, как в моем примере.
Так же могу в ячейке указать имя графика с которым должен работать код, чтоб не плодить кучу кнопок.
Спасибо!
 
Ответить
СообщениеДоброго и солнечного дня форумчане.
Снова к вам за подсказкой и помощью.
Есть ежемесячные отчеты в виде графиков по различным данным, которые в зависимости от месяца имеют свои макс и мин показатели, в следствии чего приходиться многое делать руками чтоб было красиво.
Написал макрорекордером то что нужно. но как всегда через выделения и работу с выделенными частями графика, что не есть хорошо. Как именно работать с самим графиком разобраться не смог. Дебаггер ругаеться изза моей неграмотности.
Вот код и пожелания:
[vba]
Код

' сбросить вертикальную ось в дефолт

    ActiveSheet.ChartObjects("Диаграмма 1").Select ' выделяем график
    ActiveChart.SetElement (msoElementPrimaryValueAxisShow) ' далее отображаем вертикальную ось
    ActiveChart.Axes(xlValue).Select ' выделяем вертикальныю ось
    ActiveChart.Axes(xlValue).MinimumScaleIsAuto = True ' далее  сброс макимальных и минимальных показателей на авто
    ActiveChart.Axes(xlValue).MaximumScaleIsAuto = True
    ActiveChart.SetElement (msoElementPrimaryValueAxisNone) ' скрываем вертикальную ось
[/vba]
Знаю что есть более правильный код, но знаний нехватает((

[vba]
Код

' задаем макс и мин значения вертикальной оси
Макс = Range("AA29").Value
Мин = Range("AA30").Value
' далее через выделения и работу с выделением настраиваем выделенный график
    ActiveSheet.ChartObjects("Диаграмма 1").Select
    ActiveChart.SetElement (msoElementPrimaryValueAxisShow)
    ActiveChart.Axes(xlValue).Select
    ActiveChart.Axes(xlValue).MinimumScale = Мин
    ActiveChart.Axes(xlValue).MaximumScale = Макс
    ActiveChart.SetElement (msoElementPrimaryValueAxisNone)
[/vba]
Необходимо сделать код , который сразу будет работать с нужным графиком, с вертикальной осью, их на текущем листе 4 графика, в каждом свои показатели и параметры которые берем из определенных ячеек на текущем листе, как в моем примере.
Так же могу в ячейке указать имя графика с которым должен работать код, чтоб не плодить кучу кнопок.
Спасибо!

Автор - antycapral
Дата добавления - 10.03.2016 в 12:48
Manyasha Дата: Четверг, 10.03.2016, 13:02 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 1589
Репутация: 669 ±
Замечаний: 0% ±

Excel 2007, 2010
antycapral, чтобы не выделять диаграмму, можно писать так:
[vba]
Код
With ActiveSheet.ChartObjects("Диаграмма 1").Chart
    .Axes(xlValue).MinimumScale = Мин
    .Axes(xlValue).MaximumScale = Макс
    .SetElement (msoElementPrimaryValueAxisNone)
End With
[/vba]


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеantycapral, чтобы не выделять диаграмму, можно писать так:
[vba]
Код
With ActiveSheet.ChartObjects("Диаграмма 1").Chart
    .Axes(xlValue).MinimumScale = Мин
    .Axes(xlValue).MaximumScale = Макс
    .SetElement (msoElementPrimaryValueAxisNone)
End With
[/vba]

Автор - Manyasha
Дата добавления - 10.03.2016 в 13:02
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вертикальная ось графика, задать параметры макросом (Макросы/Sub)
Страница 1 из 11
Поиск:

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