Я пытаюсь улучшить свою диаграмму Ганта в Excel с помощью VBA.На данный момент я использую только условное форматирование, но мне нужно показать значения, даты и статус платежей по проекту в поле для комментариев, в которое будут входить три различных листа в моей книге: Estudos, Projetos и Obras.
Даты платежа отображаются красным цветом на диаграмме Ганта.Если платеж находится в строках 4 + 3 * i, источником является Estudos, если платеж находится в строках 5 + 3 * i, источником является Projetos, а если в строках 6 + 3 * i, источником является Obras.
Текущее изображение диаграммы Ганта.
Моя идея состояла в том, чтобы провести цикл между всеми красными ячейками, используя три разные матрицы, по одной для каждого источника рабочего листа, но так как я новичок в VBAпрограммирование, я не могу заставить его работать.Синтаксис и объекты очень специфичны.
Пожалуйста, помогите мне!
Рабочий лист Estudos.
Выше приведен рисунок рабочего листа Estudos, откудаКомментарий примет свои значения.Мне нужно написать дату и стоимость каждого платежа, показанного в его отдельной красной ячейке, расположенной на диаграмме Ганта.
Это то, что я имею до сих пор, он вставляет общий текст «данных» в поле комментария в каждой красной ячейке.
Sub AtualizaComent()
' variaveis
Dim rng1 As Range
Dim celula As Range
Dim estudos As Range
Dim projetos As Range
Dim obras As Range
Dim etapa As String
Dim data As String
Dim valor As String
Dim i, j, k, l, m, n As Integer
' inicializaçao
Set rng1 = Range("T4:APV726")
Set estudos = Worksheets("Operacional - Pag Estudos").Cells(4, 8)
Set projetos = Worksheets("Operacional - Pag Projetos").Cells(4, 8)
Set obras = Worksheets("Operacional - Pag Obras").Cells(4, 8)
i = 0
j = 0
k = 0
l = 0
m = 0
n = 0
' limpa todos os comentarios
rng1.ClearComments
' para cada celula no gantt
For Each celula In rng1
' valido se a celula for vermelha (data do pagamento)
If celula.DisplayFormat.Interior.Color = RGB(255, 0, 0) Then
' If celula.Row = 4 + 3 * i Then
' adiciona o comentario
With celula.AddComment
.Text Text:="data"
End With
End If
Next celula
End Sub