Я хочу, чтобы всплывающее окно отображалось только один раз, независимо от количества tpred в этом коде.Как попасть в одно всплывающее окно со всеми примерами из цикла.Теперь мне нужно подтвердить нажатием кнопки «Да» каждый результат.
Макрос используется в MS Project для запуска задачи и проверки завершения предшествующего процесса.Если существует более одного predessecor, всплывающее окно появляется с каждым предшествующим.
Я очень беден в VBA, поэтому буду признателен за вашу помощь.
For Each T In ActiveSelection.Tasks
reportingTeam = T.Text3
RICEF = T.Text21
UniqueID = T.UniqueID
TaskName = T.Name
completion = T.PercentComplete
Duration = T.Duration / 60 & " hour/s"
Start = DatePart("d", T.Start) & "." & DatePart("m", T.Start) & "." & DatePart("yyyy", T.Start)
Finish = DatePart("d", T.Finish) & "." & DatePart("m", T.Finish) & "." & DatePart("yyyy", T.Finish)
primaryres = T.Text4
DataTeamResp = T.Text23
recip2 = T.Text25
reso = T.ResourceNames
SPOC = T.Text10
' check if task isnt trigered?
If completion > 0 Then
MsgBox ("Task already triggered")
Exit Sub
End If
For Each tpred In T.PredecessorTasks
compl = compl & tpred.PercentComplete
prednewid = prednewid & vbNewLine & tpred.UniqueID & "<br />"
prednnazwa = prednnazwa & vbNewLine & tpred.Name & "<br />"
predres = predres & vbNewLine & tpred.ResourceNames & "<br />"
predSPOC = predSPOC & vbNewLine & tpred.Text10 & "<br />"
predcomp = predcomp & vbNewLine & tpred.PercentComplete & " %" & "<br />"
If compl <> 100 Then
info = info & vbNewLine & tpred.UniqueID & " -> " & tpred.Name & " -> " & tpred.PercentComplete & " %" & " -> " & tpred.ResourceNames
If MsgBox("For the: " & T.UniqueID & " -> " & T.Name & vbNewLine & "following predecessors are not complete: " & vbNewLine & info & vbNewLine & vbNewLine & "Do you still want to trigger this task?", vbYesNo) = vbNo Then
info = ""
Exit Sub
End If
End If
Next tpred
T.PercentComplete = 5
completion = T.PercentComplete / 100
Next T