Forum Discussion
Display Auto-Populated Resource Field on Task Sheet
- May 19, 2021
The macros in the Wiki article are structured to transfer assignment data to task data or vice versa. It sounds like like what you want to do is to transfer resource data to task data. That is easy enough as long as there is only one assigned resource per task but it presents a dilemma if more than one resource is assigned to a given task, as is often the case.
However, if you do have a single resource assigned to each task, then this code should give you what you want.
Sub ResToTsk()
Dim t As Task
For Each t In ActiveProject.Tasks
If Not t Is Nothing Then
If t.Assignments.Count > 0 Then
t.Text1 = ActiveProject.Resources(t.Assignments(1).ResourceID).Text1
t.Text2 = ActiveProject.Resources(t.Assignments(1).ResourceID).Text2
End If
End If
Next t
End Sub
If you have more than one resource assigned per task, then you need to determine which resource's custom field is transferred to the task custom field.
John
Is there a way? Yes, but it requires either manual entry or some VBA. Rather than explaining it all here, I suggest you take a look at the following Wiki article:
John
- AndrewButtersMay 19, 2021Copper ContributorI got the macro to work but only see the change on the Task Usage View but what I really need is for it to show up when I'm editing from the Task Sheet. I tried removing and re-adding the fields to the Task Sheet but the data only shows up when I am looking at the Task Usage View. Any thoughts?
- John-projectMay 19, 2021Silver Contributor
The macros in the Wiki article are structured to transfer assignment data to task data or vice versa. It sounds like like what you want to do is to transfer resource data to task data. That is easy enough as long as there is only one assigned resource per task but it presents a dilemma if more than one resource is assigned to a given task, as is often the case.
However, if you do have a single resource assigned to each task, then this code should give you what you want.
Sub ResToTsk()
Dim t As Task
For Each t In ActiveProject.Tasks
If Not t Is Nothing Then
If t.Assignments.Count > 0 Then
t.Text1 = ActiveProject.Resources(t.Assignments(1).ResourceID).Text1
t.Text2 = ActiveProject.Resources(t.Assignments(1).ResourceID).Text2
End If
End If
Next t
End Sub
If you have more than one resource assigned per task, then you need to determine which resource's custom field is transferred to the task custom field.
John- AndrewButtersMay 20, 2021Copper Contributor
John-project It works! Thank you so much, this is going to save me a lot of time and hassle.
- AndrewButtersMay 19, 2021Copper Contributor
John-project Thank you, I will check out the article. I'm no stranger to VBA and really hoping to avoid manual entry since I have hundreds of these things to maintain.