Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Автоматизация диаграммы

Читайте также:
  1. Excel диаграммы
  2. FEO диаграммы
  3. АВТОМАТИЗАЦИЯ АНАЛИЗА ИНФОРМАЦИИ О ТЕЛЕФОННЫХ СОЕДИНЕНИЯХ
  4. Автоматизация звука в словах
  5. Автоматизация звука [л] в словах со слогами сла, сло, слу, слы
  6. Автоматизация звука [с] в слогах со стечением согласных звуков

Условное форматирование таблицы данных

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

 

 

Формула условного форматирования сравнивает ячейку периода текущего столбца с определенной фактической датой ($B$7). Выбор управляющего периода можно сделать через организацию списка (диалог «Проверка данных»).

 

 

Автоматизация диаграммы

Теперь усложним задачу. Качественная финансовая модель в Excel включает в себя не только табличные данные, но и графические формы отображения результата – графики, диаграммы, спарк-лайны. Раскрасить диаграмму по частям можно вручную через диалог «Формат точки данных», выбрав предварительно единичный элемент ряда (клик на ряд, затем двойной клик на точку, блок или линию):

 

Очевидно, что перекрашивать таким образом участки диаграммы при сдвиге периода совсем не хочется. Используя VBA, можно автоматизировать эту рутинную операцию. Пример содержится в файле diag1.xlsm (после загрузки необходимо разрешить макросы).

Процедура перерисовки области диаграммы:

view source

print?

01.Option Explicit

02.

03.Public Sub RepaintChart1()

04. RepaintChart_ CLng(ThisWorkbook.Names("LastActualPeriod").RefersToRange.Value), shtMain.ChartObjects(1).Chart.SeriesCollection(1)

05.End Sub

06.

07.Private Sub RepaintChart_(nDate As Long, oChartRow As Excel.Series)

08. Dim XValues As Variant

09. Dim nPoint As Long

10. Dim isPlan As Boolean

11.

12. XValues = oChartRow.XValues

13.

14. For nPoint = 1 To oChartRow.Points.Count

15. isPlan = (XValues(nPoint) > nDate)

16.

17. oChartRow.Points(nPoint).Format.Fill.ForeColor.ObjectThemeColor = _

18. IIf(isPlan, msoThemeColorAccent2, msoThemeColorAccent1)

19. oChartRow.Points(nPoint).Format.Line.ForeColor.ObjectThemeColor = _

20. IIf(isPlan, msoThemeColorAccent2, msoThemeColorAccent1)

21. Next

22.End Sub

В качестве параметров в процедуру передается управляющая дата, а также ссылка на ряд диаграммы (объект Series коллекции SeriesCollection). Для удобства дата задана в рабочей области таблицы через именованную ячейку. Макрос обновления диаграммы можно вызывать в любой момент времени (например, через Alt+F8). В примере вызов макроса осуществляется по событию изменения данных на листе 1:

view source

print?

01.Option Explicit

02.

03.Private Sub Worksheet_Change(ByVal Target As Range)

04. Dim oCell As Excel.Range

05.

06. For Each oCell In Target.Cells

07. If oCell.Address = Me.Parent.Names("LastActualPeriod").RefersToRange.Address Then

08. RepaintChart1

09. End If

10. Next

11.End Sub


Дата добавления: 2015-07-15; просмотров: 248 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Информационно-издательский центр Роспатента.| Заявление

mybiblioteka.su - 2015-2024 год. (0.006 сек.)