Quantcast
Channel: Project Customization and Programming forum
Viewing all articles
Browse latest Browse all 5347

ms project vba associate task with row

$
0
0
I've built a Form in my MS Project VBA that has some formatting buttons on it, particularly a "Done" button that changes the font of the selected cells to Grey and Strikethrough.  The subroutine below works fine, except...
    
Sub SetTaskNameFontDone()

Dim T As Task

If Not (ActiveSelection.Tasks Is Nothing) Then
    For Each T In ActiveSelection.Tasks
        ' Test for blank task row
        If Not (T Is Nothing) Then
                SelectTaskField Row:=T.ID, Column:="Name", RowRelative:=False
                Font32Ex Color:=8355711
                Font32Ex Strikethrough:=True
        End If
    Next T
End If
End Sub


The problem I run into on this is that the Row number seems to be a physical location number, i.e position from the top of the sheet.   So if you "close" a task that has subtasks, then the Row number is no longer the same as the Task ID, and the formatting is applied to the wrong row.

Case 1: Sheet when task is open:
VBA Row #     TaskID        Task
1                  1        ParentTask1  (open)
2                  2            SubTask1-1
3                  3        ParentTask2

Case 2:  Sheet when task is closed (note change in row number)
VBA Row #     TaskID        Task
1                  1        ParentTask1  (closed)
2                  3        ParentTask2

Two possible approaches:

1)  I could do OutlineShowAllTasks at the start of the routine, but that changes the way the outline appears.  I haven't found an indicator for which tasks are open, so I can't memorize and restore that, as a compensation for OutlineShowAllTasks.

2) Save the target Task IDs, and then loop through all the rows, and compare the Task ID for each row.   However, I haven't found a way to loop through all the rows and get the Task ID from the row.

Any suggestions on how to associate the selected task with the proper row would be appreciated.


Viewing all articles
Browse latest Browse all 5347

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>