powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Диаграмма MSGraph.Chart.8 - заливка столбцов цветом
10 сообщений из 10, страница 1 из 1
Диаграмма MSGraph.Chart.8 - заливка столбцов цветом
    #39456639
nataxa23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собственной вопрос такой, как сохранять заливку цвета для столбцов в диаграмме Microsoft Graph Chart?
То, что столбцы не должны выводиться, если значение в них пусто - это понятно и правильно, но непонятно почему тогда столбцы смещаются в цветовой гамме, если по какому-то столбцу вычисляется значение пусто?
Попытка вывести для пустых столбцов нули, отображает лишь нули, а сами столбцы при этом все равно не отображаются.
Можно ли как то тогда средствами VBA реализовать заливку цветом столбца? Если да, то помогите с кодом, тогда.



...
Рейтинг: 0 / 0
Диаграмма MSGraph.Chart.8 - заливка столбцов цветом
    #39456747
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
application.Workbooks(1).Charts(1).SeriesCollection(1).Interior.Color = RGB(255, 0, 0)
...
Рейтинг: 0 / 0
Диаграмма MSGraph.Chart.8 - заливка столбцов цветом
    #39456906
nataxa23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Predeclared ,
А можно более поподробней, только диаграмма у меня не в экселе а в аксесе.

Мое предположение, если я правильно понимаю, мне нужно узнать название и количество полей по столбцу, из которого выводятся собственно эти значения?
Библиотека Microsoft Graph подключена. Но я не могу никак добраться, чтобы получить вычисленные имена и количество.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Private Sub Form_Open(Cancel As Integer)
  Dim objGraphChart As Graph.Chart
  Dim intSrsCln As Integer
  Dim i As Integer

  Set objGraphChart = Me.Диаграмма0.Object
  intSrsCln = objGraphChart.SeriesCollection.Count
  For i = 1 To intSrsCln
'    нужно имя, чтобы сделать проверку и
'    присвоить соответствующий цвет заливки столбца
  Next i
  
  
  Set objGraphChart = Nothing
End Sub


...
Рейтинг: 0 / 0
Диаграмма MSGraph.Chart.8 - заливка столбцов цветом
    #39456949
nataxa23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В нете нашла примерный вариант, только там столбцы цифровые, у меня все равно на этом примере выдается ошибка. Не понятно мне как через VBA правильно реализовать заливку столбцов по нужным категориям. Не знаю как добраться до нужных свойств и вообще возможно я чего то и где то недопонимаю, но объяснить мне к сожалению некому.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
Private Sub Form_Open(Cancel As Integer)
  Dim objGraphChart As Graph.Chart
  Dim intSrsCltn As Integer
  Dim srs As Object
  Dim vals
  Dim i As Integer, intX As Integer

  Set objGraphChart = Me.Диаграмма0.Object
  intSrsCltn = objGraphChart.SeriesCollection.Count
  For i = 1 To intSrsCltn
    Set srs = objGraphChart.SeriesCollection(i)
    vals = srs.XValues 'выдает ошибку
  
    For intX = LBound(vals) To UBound(vals)
      If vals(intX) = "В работе" Then
        srs.Points(intX).Interior.Color = RGB(128, 128, 128)
      ElseIf vals(intX) = "Закрыто" Then
        srs.Points(intX).Interior.Color = RGB(0, 128, 0)
      ElseIf vals(intX) = "Непросрочено" Then
        srs.Points(intX).Interior.Color = RGB(255, 255, 255)
      ElseIf vals(intX) = "Просрочено" Then
        srs.Points(intX).Interior.Color = RGB(255, 0, 0)
      End If
    Next intX
  Next i

  Set srs = Nothing
  Set objGraphChart = Nothing
End Sub


...
Рейтинг: 0 / 0
Диаграмма MSGraph.Chart.8 - заливка столбцов цветом
    #39456968
nataxa23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Обидно, что столько труда с базой и все насмарку, только потому что в диаграммах косячное отображение по цвету для категорий.

Если кто может помочь, жду помощи и дельных советов. Если нужно больше информации, предоставлю.

Отмечу сразу, что форма с диаграммой запускается по кнопке из формы с поиском по полям и таким образом запрос формируется из формы по поиску для формы с диаграммой.
Предположу, что возможно по этой причине в коде на самой форме с диаграммой на этапе ее открытия мне недоступны какие то свойства со значениями. Хотя с другой то стороны, когда форма с диаграммой открывается, категории в легенде то выводятся, а раз выводятся, то каким тогда "макаром" получить инфу, чтобы понять какому столбцу какой цвет заливки присвоить.
...
Рейтинг: 0 / 0
Диаграмма MSGraph.Chart.8 - заливка столбцов цветом
    #39458481
nataxa23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добилась некоторых результатов, но появились вопросы.
Просьба помочь с кодом, не уверена, что данный код работает на 100% правильно. Да и вообще...

1) Когда форма с диаграммой открывается и выдает результат, то получается, что при закрытии заливка цветом сохраняется. Соответственно получается, если открывать форму по умолчанию (т.е. без запроса через форму с поиском), то заливка отображается уже неправильно. Как сделать, чтобы форма с диаграммой не сохраняла заливку цвета?

2) Ну а для полного счастья хотелось бы сделать градиентную заливку, как это тоже сделать?

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
Sub ЗаливкаСтолбцов()
  Dim objGraphChart As Graph.Chart

  Set objGraphChart = Form_фдТест.Диаграмма0.Object
    If (objGraphChart.Application.DataSheet.Cells(1, 2) = "В работе") Then
      objGraphChart.SeriesCollection(1).Interior.Color = RGB(128, 128, 128)
    ElseIf (objGraphChart.Application.DataSheet.Cells(1, 2) = "Закрыто") Then
      objGraphChart.SeriesCollection(1).Interior.Color = RGB(0, 128, 0)
    ElseIf (objGraphChart.Application.DataSheet.Cells(1, 2) = "Непросрочено") Then
      objGraphChart.SeriesCollection(1).Interior.Color = RGB(255, 255, 153)
    ElseIf (objGraphChart.Application.DataSheet.Cells(1, 2) = "Просрочено") Then
      objGraphChart.SeriesCollection(1).Interior.Color = RGB(255, 0, 0)
    End If

    If (objGraphChart.Application.DataSheet.Cells(1, 3) = "В работе") Then
      objGraphChart.SeriesCollection(2).Interior.Color = RGB(128, 128, 128)
    ElseIf (objGraphChart.Application.DataSheet.Cells(1, 3) = "Закрыто") Then
      objGraphChart.SeriesCollection(2).Interior.Color = RGB(0, 128, 0)
    ElseIf (objGraphChart.Application.DataSheet.Cells(1, 3) = "Непросрочено") Then
      objGraphChart.SeriesCollection(2).Interior.Color = RGB(255, 255, 153)
    ElseIf (objGraphChart.Application.DataSheet.Cells(1, 3) = "Просрочено") Then
      objGraphChart.SeriesCollection(2).Interior.Color = RGB(255, 0, 0)
    End If

    If (objGraphChart.Application.DataSheet.Cells(1, 4) = "В работе") Then
      objGraphChart.SeriesCollection(3).Interior.Color = RGB(128, 128, 128)
    ElseIf (objGraphChart.Application.DataSheet.Cells(1, 4) = "Закрыто") Then
      objGraphChart.SeriesCollection(3).Interior.Color = RGB(0, 128, 0)
    ElseIf (objGraphChart.Application.DataSheet.Cells(1, 4) = "Непросрочено") Then
      objGraphChart.SeriesCollection(3).Interior.Color = RGB(255, 255, 153)
    ElseIf (objGraphChart.Application.DataSheet.Cells(1, 4) = "Просрочено") Then
      objGraphChart.SeriesCollection(3).Interior.Color = RGB(255, 0, 0)
    End If

    If (objGraphChart.Application.DataSheet.Cells(1, 5) = "В работе") Then
      objGraphChart.SeriesCollection(4).Interior.Color = RGB(128, 128, 128)
    ElseIf (objGraphChart.Application.DataSheet.Cells(1, 5) = "Закрыто") Then
      objGraphChart.SeriesCollection(4).Interior.Color = RGB(0, 128, 0)
    ElseIf (objGraphChart.Application.DataSheet.Cells(1, 5) = "Непросрочено") Then
      objGraphChart.SeriesCollection(4).Interior.Color = RGB(255, 255, 153)
    ElseIf (objGraphChart.Application.DataSheet.Cells(1, 5) = "Просрочено") Then
      objGraphChart.SeriesCollection(4).Interior.Color = RGB(255, 0, 0)
    End If


  Set objGraphChart = Nothing

End Sub



Люди, есть хоть кто нить, кто может реально помочь, а?
...
Рейтинг: 0 / 0
Диаграмма MSGraph.Chart.8 - заливка столбцов цветом
    #39458591
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Попробовать поднимать форму нестандартным экземпляром.

2)
Код: vbnet
1.
2.
3.
4.
5.
 With objGraphChart.SeriesCollection(1).Fill
        .TwoColorGradient Style:=3, Variant:=1
        .ForeColor.SchemeColor = 19
        .BackColor.SchemeColor = 46
    End With
...
Рейтинг: 0 / 0
Диаграмма MSGraph.Chart.8 - заливка столбцов цветом
    #39459184
nataxa23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Predeclared , спасибо что хоть кто то откликнулся.
Можно как то по подробнее разъяснить. А то я словно как бабка-угадка какая то...
В коде на точке останова не выдается назначенный мной вручную (через настройки) цвет для каждого столбца. Я не понимаю как задать тогда свои? Это же не как с RGB.
Predeclared
Код: vbnet
1.
2.
3.
4.
5.
 With objGraphChart.SeriesCollection(1).Fill
        .TwoColorGradient Style:=3, Variant:=1
        .ForeColor.SchemeColor = 19 '- ???
        .BackColor.SchemeColor = 46 '- ???
    End With


И еще я обратила внимание на то, что у вас здесь в примере выбран TwoColorGradient - я так понимаю это означает использование 2 цвета. У меня правда в ручную до этого было настроено на один цвет. Попробовала OneColorGradient - выдает ошибку. Как тогда правильно?
...
Рейтинг: 0 / 0
Диаграмма MSGraph.Chart.8 - заливка столбцов цветом
    #39459209
Predeclared
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я в первом же ответе намекал на Excel.
В ем есть все в справке и в ObjectBrowser,
+ макрорекордер.
...
Рейтинг: 0 / 0
Диаграмма MSGraph.Chart.8 - заливка столбцов цветом
    #39460734
nataxa23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Predeclaredapplication.Workbooks(1).Charts(1).SeriesCollection(1).Interior.Color = RGB(255, 0, 0)
Еще назрел вопрос, а для круговых диаграмм цвет задается аналогичным образом?
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Диаграмма MSGraph.Chart.8 - заливка столбцов цветом
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]