Advertisement
illpastethat

project network bit

Nov 7th, 2014
427
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Sub CreateProjectNetwork()
  2.     Dim AOAarcs() As Integer, finishtime As Double, r As Range, numNodes As Integer, i As Integer
  3.     Dim ES As Integer, LS As Integer, Critical As Integer, maxLS As Integer, r2 As Range
  4.    
  5.    
  6.     Application.ScreenUpdating = False
  7.    
  8.     AOAarcs = GetAOAarcs()
  9.     Call FormatSolverWorksheet(AOAarcs)
  10.     finishtime = SolveProjectNetworkMin()
  11.     Call GetMinValues
  12.     finishtime = SolveProjectNetworkMax(finishtime)
  13.     Call GetMaxValues
  14.    
  15.     'Create Gantt Chart
  16.    Worksheets("Gantt Chart").Cells.Clear
  17.     Set r = Worksheets("Solution Table").Range("A2")
  18.     Set r2 = Worksheets("Gantt Chart").Range("A1")
  19.     numNodes = Worksheets("Solution Table").Range("A2").End(xlDown)
  20.     'Begin Filling Table
  21.    r2.Offset(0, 0) = "Activity"
  22.     r2.Offset(0, 1).Value = 1
  23.     r2.Offset(0, 2).Value = 2
  24.    
  25.     'Set default values
  26.    i = 1
  27.     maxLS = 0
  28.    
  29.     'For each row in solution table (except end node), create gantt chart row
  30.    Do While i < numNodes - 1
  31.         r2.Offset(i, 0) = r.Offset(i, 0) 'Activity number
  32.        ES = r.Offset(i, 1).Value
  33.         LS = r.Offset(i, 2).Value
  34.         If LS > maxLS Then
  35.             maxLS = LS
  36.         End If
  37.         Critical = r.Offset(i, 5).Value
  38.    
  39.         'Select Area to be formatted
  40.        Worksheets("Gantt Chart").Select
  41.         Range(Range("A1").Offset(i, ES + 1), Range("A1").Offset(i, LS)).Select
  42.         If Critical = 1 Then
  43.             With Selection.Interior
  44.                 .Pattern = xlSolid
  45.                 .PatternColorIndex = xlAutomatic
  46.                 .ThemeColor = xlThemeColorAccent3
  47.                 .TintAndShade = 0
  48.                 .PatternTintAndShade = 0
  49.             End With
  50.         Else
  51.             With Selection.Interior
  52.                 .Pattern = xlSolid
  53.                 .PatternColorIndex = xlAutomatic
  54.                 .Color = 49407
  55.                 .TintAndShade = 0
  56.                 .PatternTintAndShade = 0
  57.             End With
  58.         End If
  59.     i = i + 1
  60.     Loop
  61.     Worksheets("Gantt Chart").Select
  62.     'Add top row number from 1 to the max finish time (end node)
  63.    Range("B1:C1").AutoFill Destination:=Range(Range("B1"), Range("B1").Offset(0, maxLS - 1)), Type:=xlFillDefault
  64.    
  65.     Application.ScreenUpdating = True
  66. End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement