Я пытаюсь улучшить свою диаграмму ГАНТА в Excel с помощью VBA. На данный момент я использую только условное форматирование, но мне нужно показать значения, даты и статус платежа по проекту в поле комментариев, которое будет получать данные из трех разных рабочих листов в моей книге: Estudos, Projetos и Obras.
Даты платежей показаны на диаграмме ГАНТТ красным цветом. Если платеж находится в строках 4+3*i, источником является Estudos, если платеж находится в строках 5+3*i, источником является Projetos, а если в строках 6+3*i, источником является Obras.
Моя идея заключалась в том, чтобы зациклить все красные ячейки, используя три разные матрицы, по одной для каждого источника рабочего листа, но, поскольку я новичок в программировании VBA, я не могу заставить это работать. Синтаксис и объекты очень специфичны.
Помогите мне, пожалуйста!
Выше приведено изображение рабочего листа 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
activecell.AddComment(cstr(application.WorksheetFunction.VLookup(range("a1").Value,range("g1:h100"),2,false)))
- person Nathan_Sav   schedule 04.12.2018