Доброго и солнечного дня форумчане. Снова к вам за подсказкой и помощью. Есть ежемесячные отчеты в виде графиков по различным данным, которые в зависимости от месяца имеют свои макс и мин показатели, в следствии чего приходиться многое делать руками чтоб было красиво. Написал макрорекордером то что нужно. но как всегда через выделения и работу с выделенными частями графика, что не есть хорошо. Как именно работать с самим графиком разобраться не смог. Дебаггер ругаеться изза моей неграмотности. Вот код и пожелания: [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
antycapral, чтобы не выделять диаграмму, можно писать так: [vba]
Код
With ActiveSheet.ChartObjects("Диаграмма 1").Chart .Axes(xlValue).MinimumScale = Мин .Axes(xlValue).MaximumScale = Макс .SetElement (msoElementPrimaryValueAxisNone) End With
[/vba]
antycapral, чтобы не выделять диаграмму, можно писать так: [vba]
Код
With ActiveSheet.ChartObjects("Диаграмма 1").Chart .Axes(xlValue).MinimumScale = Мин .Axes(xlValue).MaximumScale = Макс .SetElement (msoElementPrimaryValueAxisNone) End With