none
Copy/Pasting a group of tasks within a Project RRS feed

  • Question

  • Hi all -

    I am trying to develop a process to copy/paste groups of tasks within a project while maintaining predecessors & successors both internal to that group AND external to the group.  For example, let's say I have a group of ten tasks that represent the work required to build inventory for a particular sku.  These tasks are linked to each other, but also have predecessors external to this group (for example one generic "packing materials ordered" task).  If I select the ten tasks and copy/paste them to reflect inventory build on a different sku, some of the predecessors are copied to the new group, but not all of them (e.g. the" packing materials ordered" task).  As it stands, I then have to go back and manually check predecessors and successors and add any that are missing. . . a huge time suck.

    Is there a way to automate this with some VBA code?  I have done rudimentary VBA, but this is a little beyond me.  I would be able to follow an example, but am coming up short as I try to figure this out.

    Thanks for any help you can provide!

    Friday, January 16, 2015 10:20 PM

Answers

  • Kristen,

    Okay, I played with your last code and it does indeed capture the external UniqueIDs but I'm not sure if you've been able to finish it to completion. In case you're still struggling, here is my version of the macro. I tested it on my simple test file and it works fine, but there may be some differences in the file you want to use it on that could highlight some glitches in my code, but at least it's a good start. Note, if you haven't delved into arrays before, this will give you a taste of how they can be used. A second array could be used to avoid the necessity to store data in Text4, but I'll leave that as an exercise to the reader.

    Sub CaptureExternalA()
    Dim GrpUIDs() As Long
    Dim t As Task, UIDP As Task
    Dim ExpPred As String
    Dim CopySize As Integer

    ReDim GrpUIDs(ActiveSelection.Tasks.Count)
    'First fill an array with Unique IDs of each task in selected set
    ' and get selection size for later use
    CopySize = ActiveSelection.Tasks.Count
    I = 0
    For Each t In ActiveSelection.Tasks
        GrpUIDs(I) = t.UniqueID
        I = I + 1
    Next t
    'Second, loop through uniqueID predecessors of each task in
    '   selected set and create string of any UIDs not in the set
    For Each t In ActiveSelection.Tasks
        For Each UIDP In t.PredecessorTasks
            For I = 0 To (ActiveSelection.Tasks.Count - 1)
                If UIDP.UniqueID = GrpUIDs(I) Then Exit For
                'didn't find a match so UID is external to group
                If I = ActiveSelection.Tasks.Count - 1 Then
                    'ExpPred = ExpPred & "," & UIDP
                    t.Text4 = "," & UIDP
                End If
            Next I
        Next UIDP
    Next t
    'Third, copy selected tasks
    EditCopy
    'Fourth, do paste operation followed by selection of new copied
    ' set to give a new activeselection collection.
    EditPaste
    SelectRow Row:=0, Height:=(CopySize - 1)
    Set NewTasks = ActiveSelection.Tasks
    'Finally, loop throught the new activeselection collection and add Text4
    ' to the UniqueID Predecessors field
    For Each t In ActiveSelection.Tasks
        t.UniqueIDPredecessors = t.UniqueIDPredecessors & t.Text4
    Next t
    End Sub

    John


    • Edited by John - Project Wednesday, February 4, 2015 2:07 AM code corrections
    • Marked as answer by krcullen Wednesday, February 4, 2015 10:50 AM
    Tuesday, February 3, 2015 11:28 PM

All replies

  • krcullen,

    Copy and paste of a task or tasks with internal predecessors and successors is not a problem. However, external predecessors and successors are a whole different ballgame. Linked structures in Project are fragile and subject to corruption. By copying and pasting tasks that have external links you are effectively duplicating the link structure and that will eventually lead to file corruption.

    So, I would NOT copy and paste any tasks with external links. If you need to have multiple external links, set them up individually after you have all your tasks set up (i.e. manually re-enter any tasks that will need additional external links).

    As far as automating copy and paste of non-externally linked tasks, start out by recording a macro. That will give you a starting point. If you need help with that, post the code you have with your questions, and we'll help you from there.

    John

    Friday, January 16, 2015 11:53 PM
  • If you mean external to the group of tasks,but still within the same project then Project does not do this. It assumes that the new group is linked to other tasks.

    You can definitely do something in VBA. You would have to identify the links external to the tasks you copy then use the Unique Ids to create the extra links. Unique IDs in case you copy/paste to an ID above the selected tasks because the paste will change the IDs.


    Rod Gill
    Author of the one and only Project VBA Book
    www.project-systems.co.nz

    Sunday, January 18, 2015 9:08 PM
    Moderator
  • Thank you both for responding.  Rod, you are understanding what I'm trying to do (external to the group of tasks, but still within the same project).  I have been tinkering with this and have gotten to the point of identifying the external/internal predecessors, but am having trouble taking it to the next step of linking to the copied/pasted tasks.  Here is what I have:

    Sub externallinks_test()
    ' Macro externallinks_test
    ' Macro Recorded Wed 1/28/15 by Kristen
    Dim SelectedUID As Integer
    Dim SelectedID As Integer
    Dim CopySize As Integer
    Dim OriginalTasks As Tasks
    Dim NewTasks As Tasks
    Dim t As Task
    Dim n As Task
    Dim m As Task
    
    'Capture details about tasks to copy
    SelectedUID = ActiveCell.Task.UniqueID
    SelectedID = ActiveCell.Task.ID
    CopySize = ActiveSelection.Tasks.Count
    Set OriginalTasks = ActiveSelection.Tasks
    
    'Copy tasks in current selection, insert immediately above current selection
    EditCopy
    SelectRow Row:=0
    
    'Paste tasks, make note of new task UIDs
    EditPaste
    SelectRow Row:=0, Height:=(CopySize - 1)
    Set NewTasks = ActiveSelection.Tasks
    
    ' Marks task's Text4 if it contains external predecessors
    For Each t In OriginalTasks
        For Each n In t.PredecessorTasks
            For Each m In OriginalTasks
                If m <> n Then
                ExtTrack = ExtTrack + 0
                Else
                ExtTrack = ExtTrack + 1
                End If
            Next m
        If ExtTrack = 0 Then
    'Mark as External
            t.Text4 = t.Text4 & n & ","
        Else
    'Mark as Internal
            t.Text5 = t.Text5 & n & ","
        End If
        Next n
    Next t
      
    End Sub
    

    I've been using Text4 and Text5 to capture the predecessors just to test the looping, and I think this is working to identify which type (internal to the group or external) are which.  I'm stuck on how to go about adding the linkages to the copied/pasted tasks, though.  Will using EditCopy / EditPaste and then referencing the NewTasks collection work?  Or should I write the new tasks individually as I loop through?  Basically, I am stuck and would appreciate any help you could provide!

    Thanks again, and in advance.

    -Kristen


    Sunday, February 1, 2015 6:58 AM
  • Kristen,

    You disappeared for a while. I assume you had other things to do and were not struggling with this for a week without seeking our assistance.

    Okay, help has arrived, but I need a little more help in understanding where the problem arises from the copy/paste operation. First I set up a very simple example (see first screenshot) with three subtasks under the "SKU A" summary line all linked in sequence. The packing task (UID 5) is a task external to the SKU A group that links to the last subtask under SKU A. Does that correctly represent the intent?

    I copied the three subtasks under SKU A, pasted them under SKU B, and indented them to create the "SKU B" summary group (see second screenshot). As you can see, all the links, both internal to the group and external to the group, are preserved. So, what am I not understanding?

    John

    Sunday, February 1, 2015 7:19 PM
  • John -

    Thank you for the quick response.  Yes, busy with other things (thing one is 7 years old, thing two is 4).

    I tried recreating your example and I get a different result, which leads me to believe there is some sort of version/option issue going on?  This is what I get, and it shows the heart of the problem - I really want my copied task c to have packing as a predecessor, but it does not.

    I am running Microsoft Project 2010.  Do you think this is a version issue?



    • Edited by krcullen Sunday, February 1, 2015 10:21 PM
    Sunday, February 1, 2015 10:14 PM
  • Kristen,

    Smile, now I understand why you're not spending full time trying to figure this out.

    However, I think the "fix" is simple. Go to File/Options/Schedule group. I'm betting the option to "autolink inserted or moved tasks" is not checked. Check it. Does that give you what you need? If so, please mark my response as the answer. If it does not, then please elaborate further.

    Oh, and just for reference, I ran your code on my little test file. It didn't populate Text4 with any data but Text5 was populated with the UniqueID predecessors. As it turns out, there is already a field called UniqueIDPredecessors, so most of the code isn't necessary. And if the above fixes your issue, then none of your macro code is necessary.

    John


    • Edited by John - Project Sunday, February 1, 2015 11:41 PM code comment
    Sunday, February 1, 2015 11:35 PM
  • Unfortunately, I have the same issue regardless of whether or not "autolink inserted or moved tasks" is checked.

    I am holding out hope for a simple fix because I also tried this code on the test file and found it to not work.  Grrrr.  Time to go back to the drawing board.

    edit -  OK, this code is working (so far):

    Sub externallinks_test()
    ' Macro externallinks_test
    ' Macro Recorded Wed 1/28/15 by Kristen
    Dim SelectedUID As Integer
    Dim SelectedID As Integer
    Dim CopySize As Integer
    Dim OriginalTasks As Tasks
    Dim NewTasks As Tasks
    Dim t As Task
    Dim n As Task
    Dim m As Task
    
    'Capture details about tasks to copy
    SelectedUID = ActiveCell.Task.UniqueID
    SelectedID = ActiveCell.Task.ID
    CopySize = ActiveSelection.Tasks.Count
    Set OriginalTasks = ActiveSelection.Tasks
    
    ExtTrack = 0
    ' Marks task's Text5 if it contains predecessors internal to selected group
    For Each t In OriginalTasks
        For Each n In t.PredecessorTasks
            For Each m In OriginalTasks
                If m = n Then
                t.Text5 = t.Text5 & n & ","
                End If
            Next m
        If InStr(t.Text5, CStr(n)) = 0 Then
            t.Text4 = t.Text4 & n & ","
        End If
        Next n
    Next t
    
    'Copy tasks in current selection, insert immediately above current selection
    EditCopy
    SelectRow Row:=0
    
    'Paste tasks, make note of new task UIDs
    EditPaste
    SelectRow Row:=0, Height:=(CopySize - 1)
    Set NewTasks = ActiveSelection.Tasks
    
    End Sub

    • Edited by krcullen Monday, February 2, 2015 3:46 AM
    Monday, February 2, 2015 3:20 AM
  • Kristen,

    You're right, that particular option doesn't effect the copy/paste operation. My bad. But l am remiss. I never asked you if you have SP2 installed? You can check by going to File/Help. In the middle on the right side click on "additional version and copyright information". What is your version number shown at the top? For reference, mine is 14.0.7121.5000) SP2 MSO (14.0.7015.1000). I have SP2 installed and the April 2014 cumulative update. If you do not have SP2 installed, you need to install it immediately.

    The fact that a copy and paste of the 3 subtasks in my little test file works for me but not for you tells me there is some basic difference between our two setups. You do NOT need VBA to do what you want (at least if what you want is correctly demonstrated by my sample file), although working on the macro you created will give you a leg up should you need VBA for something else.

    We'll get to the bottom of this. If we don't find the bottom, we'll go to the top. (I'm sure some wise guru said that sometime)

    John

    Monday, February 2, 2015 5:59 PM
  • Version number is Microsoft Project 2010 (14.0.7011.1000) SP2 MSO (14.0.7140.5002).  FWIW, I have had this "issue" since as long as I can remember and at least one machine ago.  I didn't even actually realize it was an issue and I have been using Microsoft Project off and on for a long time. . . I just thought this was the designed functionality of the software.

    And I am learning all sorts of things trying to capture this functionality in a macro.  Probably just enough to be dangerous.  Thanks again for your continued help.
    Monday, February 2, 2015 7:38 PM
  • Kristen,

    Based on your version number you have the latest cumulative update on top of SP2, (i.e. December 2014), so you are more up-to-date than I am. Are you running Project 2010 Standard or Pro? For reference, that should have nothing to do with your issue but I'm curious.

    Yesterday I checked to see if this "retaining links" feature acted differently from Project 2007 to Project 2010. When I set up my same test file in Project 2007 and do the copy/paste operation, the link to the "packing" task follows the paste operation, just it does for me in Project 2010. I didn't try earlier versions of Project.

    I'm running out of ideas so let's double check your process. In the screen shot you show of the test file did you 1) copy all three subtasks a,b, and c, 2) paste them under "SKU B", 3) indent them so they are now subtasks of SKU B?

    I tried the copy/paste operation a few different ways (e.g. all three subtasks, just subtask "c", hotkey versus ribbon icon methods), and it always works, the link goes with the paste.

    I'm going to consult with a couple people. First I'll try Rod Gill since he seemed to indicate it wouldn't work. If he doesn't post back to this thread, I'll let you know what he says, or if he's unavailable, I'll go to another fellow guru.

    While I was testing your original macro code I found something interesting. You define a collection (i.e. Set OriginalTasks = ActiveSelection.Tasks), to capture that collection for your loop. I've done that type of "capture" in macros myself and so I expected that collection to be and stay the three original tasks, but I found out that once those three tasks are copied and pasted, the collection expands to cover all six tasks. I've done a lot of Project macro coding over the years but it seems I can always learn something. Of course, I forget most of what I learn, but that's another story.

    If we can't figure out a simple fix, (i.e. non-macro), to make this copy/paste operation do what you need, I'll be glad to help you with a VBA equivalent. I'm a sucker for this stuff. In fact I started my own macro code and it basically finds links external to the group. I didn't carry it through to actually create the external link to the new task set. That will take a bit more time.

    See you on the flip side.

    John

    Tuesday, February 3, 2015 3:20 AM
  • Thank you (again - this is really above and beyond). 

    I did wonder if I had been copying and pasting wrong (oy), but I'm following the same process you outlined above.  Thank goodness.  I would have had to change my username if that had been the problem.

    That the collection expands is a surprise, so I am guessing there is a better method?  Glad to know as I planned to link the "external" predecessors and successors to the NewTasks collection I set later.  Although it seems like there should be a way to add the links earlier, as I'm looping through and identifying them, but I can't quite crack the nut.  YET.

    Tuesday, February 3, 2015 12:07 PM
  • Kristen,

    Okay I heard back from Rod. Unfortunately, (for you), the paste operation also works for him and he doesn't have any idea as to why it doesn't work for you. So, I've written to another of my guru contacts to get a third input. If she gets the same result as Rod and me and doesn't have an explanation why, I'll run it up the chain to a contact at Microsoft. Remember I said we'll get to the bottom of this and if not, we'll go to the top. Well, the bottom, that is me, is flat, so we're on a climb.

    If I have some time, I'll work more on the macro I started and I'll take a look at the code you last posted. Even though it shouldn't require any VBA to make this work, further development of your VBA skills is always a good investment and as I said, I'm always happy to help with that.

    John

    By the way, those of us who respond on these forums are all volunteers. We do not work for Microsoft nor are we associated with them in any way. We get "paid" by posters recognizing our help by either marking our response as the answer, if applicable, or be "voting" for our responses.

    Tuesday, February 3, 2015 4:48 PM
  • Yes, I figured out the voting thing earlier today.  You have a lot of points!

    I am going to keep looking at this macro, but given your take & Rod's take, is there a reason a fresh install of the software wouldn't correct this issue?  I would have sworn MSP has always worked this way for me, even when I was running 2007 and 2002, but maybe not. 

    Tuesday, February 3, 2015 8:48 PM
  • Kristen,

    Thanks for the votes. Hopefully I or somebody else will figure out the magic decoder ring to make it work for you like it does for us and you can issue a full "mark as answer".

    You forgot to tell me which version of Project 2010 you have, Standard or Pro. I have Pro as does Rod and the other guru I asked (haven't heard back from her yet). Supposedly Standard and Pro work exactly the same except that Pro works with Project Server whereas Standard does not and Pro has a couple extra features not available in Standard.

    John

    Tuesday, February 3, 2015 9:36 PM
  • Kristen,

    Okay, I played with your last code and it does indeed capture the external UniqueIDs but I'm not sure if you've been able to finish it to completion. In case you're still struggling, here is my version of the macro. I tested it on my simple test file and it works fine, but there may be some differences in the file you want to use it on that could highlight some glitches in my code, but at least it's a good start. Note, if you haven't delved into arrays before, this will give you a taste of how they can be used. A second array could be used to avoid the necessity to store data in Text4, but I'll leave that as an exercise to the reader.

    Sub CaptureExternalA()
    Dim GrpUIDs() As Long
    Dim t As Task, UIDP As Task
    Dim ExpPred As String
    Dim CopySize As Integer

    ReDim GrpUIDs(ActiveSelection.Tasks.Count)
    'First fill an array with Unique IDs of each task in selected set
    ' and get selection size for later use
    CopySize = ActiveSelection.Tasks.Count
    I = 0
    For Each t In ActiveSelection.Tasks
        GrpUIDs(I) = t.UniqueID
        I = I + 1
    Next t
    'Second, loop through uniqueID predecessors of each task in
    '   selected set and create string of any UIDs not in the set
    For Each t In ActiveSelection.Tasks
        For Each UIDP In t.PredecessorTasks
            For I = 0 To (ActiveSelection.Tasks.Count - 1)
                If UIDP.UniqueID = GrpUIDs(I) Then Exit For
                'didn't find a match so UID is external to group
                If I = ActiveSelection.Tasks.Count - 1 Then
                    'ExpPred = ExpPred & "," & UIDP
                    t.Text4 = "," & UIDP
                End If
            Next I
        Next UIDP
    Next t
    'Third, copy selected tasks
    EditCopy
    'Fourth, do paste operation followed by selection of new copied
    ' set to give a new activeselection collection.
    EditPaste
    SelectRow Row:=0, Height:=(CopySize - 1)
    Set NewTasks = ActiveSelection.Tasks
    'Finally, loop throught the new activeselection collection and add Text4
    ' to the UniqueID Predecessors field
    For Each t In ActiveSelection.Tasks
        t.UniqueIDPredecessors = t.UniqueIDPredecessors & t.Text4
    Next t
    End Sub

    John


    • Edited by John - Project Wednesday, February 4, 2015 2:07 AM code corrections
    • Marked as answer by krcullen Wednesday, February 4, 2015 10:50 AM
    Tuesday, February 3, 2015 11:28 PM
  • Thank you so much!  I had gotten further with my attempt and played with arrays but hadn't finished.  I got an error with your code near the very end with this line highlighted:
            t.UniqueIDPredecessors = t.UniqueIDPredecessors & t.Text4

    "Run time error '1101':  There is a problem with the predecessor information"

    However, I think I should be able to troubleshoot/combine with what I've done and figure it out. 

    At some point in the next year I will probably have to bite the bullet and upgrade to MSP 2013.  You can bet the first thing I am going to do is copy & paste a chunk of tasks and see if all the linkages pasted.

    Wednesday, February 4, 2015 10:50 AM
  • Kristen,

    You're welcome and thanks for the feedback but please, please, tell me if you have Project 2010 Standard or Pro.

    With regard to the error, I though there may be an issue if the macro tries to add a predecessor that already exists for the task but it didn't have a problem when I ran it. You can develop a test to make sure what you're adding is not already there, or one trick that is sometimes used when an error may occur is this sequence:

    On Error Resume Next

    [statement that may trigger an error]

    [action to take if there is an error]

    On Error GoTo 0     'this clears the error since you don't want the code jumping over other unexpected errors that may occur later

    John

    Wednesday, February 4, 2015 3:36 PM
  • I have Project 2010 Standard.  From what I can tell this should not be a difference, but who knows. .. maybe it's some sort of bug.  Thank you again for all your help!
    Wednesday, February 4, 2015 8:54 PM
  • Kristen,

    Thank you for that info. I heard back from the other guru. She also has Project Pro and gets the same result with copy/paste as Rod and myself. I'm going to query a contact at Microsoft. So far the only difference I see is that you have Standard and we have Pro. And, yes, that shouldn't make any difference but maybe this is just one of those times. I'll post back if and when I hear anything from Microsoft.

    Meanwhile, if you get stuck with the macro, let me know. We'll get to the bottom. . . .wait, I already said that.

    John

    Thursday, February 5, 2015 2:05 AM
  • Kristen,

    I did hear back from a contact at Microsoft and it turns out I didn't have a very good understanding of how to interpret the version number of Project. I've been enlightened.

    The fix for your issue is very simple. Install the June 2013 cumulative update for Project 2010, or if you install the latest cumulative update, which is December 2014, that will include all previous updates. Based on the version number you gave earlier in this thread, you DO have SP2 installed but you do NOT have any cumulative updates installed for Project, (first set of decimal numbers), although you do have cumulative updates installed for Office, (set of decimal numbers after the "MSO"). The Project 2010 June 2013 cumulative update was released AFTER the SP2 update. That's why none of us could see the problem because we all have the latest updates for Project installed.

    Simple fix, sorry it took so much effort to relate it to you. My bad.

    John

    Friday, February 20, 2015 5:25 PM
  • If I can jump in here I could use some help on this subject.  I have been using project every day for 18 years (I'm a scheduler) and up until yesterday every time I copy and paste a group of tasks within the same project file it only copys links "internal" to the group I am copying. Like Rod and Kristen both said above - I have never seen it behave any other way.  Literally out of the blue yesterday when I copy paste a group of tasks Project is keeping all of the links internal and external.  I haven't changed any settings (that I remember), but I did get a message from IS via a a lovely little pop up that they had "patched" my machine remotely.  I have no idea what they patched, but now after scouring the internet for a solution I'm wondering if this behavior is an enhancement with the version.  One of my co-workers tested it with the same file on his machine and his does NOT copy the external links only the internal ones, so it has to be something relative to either my version or my global template.  My version is MS Project 2010 (14.0.7141.5000) SP2 MSO (14.0.7116.50100).  Just wondering if anyone had gotten to the "bottom" yet. (Don't know what version my coworker is running he's in a different time zone I'll ask tomorrow.)
    • Edited by SL Hamilton Tuesday, February 24, 2015 10:44 PM
    Tuesday, February 24, 2015 10:43 PM
  • John -

    I've let this problem rest a bit, and then I saw your post.  I went to recheck my version number and it was different:  MSP 2010 (14.0.7141.5000) SP2 MSO (14.0.7143.5000).  So I opened the test file I created earlier in the thread (your example with Sku A and Sku B) and the issue is now fixed.  I am not sure if Microsoft was somehow monitoring this thread, if your contact forwarded the issue information, or if I am just lucky, but this issue has been corrected after plaguing me since I can remember.  I've been using Project since 2002 and have spent a lot of hours updating logic on copied/pasted tasks.

    All that to say, THANK YOU!  What a huge relief!  I'm super excited and my employer will be, too. . . I'll be way more efficient :)


    • Edited by krcullen Tuesday, February 24, 2015 11:01 PM
    Tuesday, February 24, 2015 11:00 PM
  • Mystery May be Solved.  I just found the update history on my machine and IS DID in fact update MS Project 2010 last Friday the 20th. 
    Tuesday, February 24, 2015 11:13 PM
  • Kristen,

    I think you are just lucky because somewhere along the line your version of Project is now updated with SP2 and the December 2014 cumulative update. It's something you would have had to do yourself, it doesn't happen automatically, although it will now if you have auto-update turned. Up until February of this year, a user had to manually update Project, it did not automatically update with Office. As of February 2015, there will no longer be cumulative updates. Henceforth, they will now be called Public Updates. You can read more about them at: http://blogs.msdn.com/b/brismith.

    John

    Wednesday, February 25, 2015 12:18 AM
  • SL Hamilton,

    Are you Kristen under a different name, or somebody else with the same problem? At any rate it sounds like the new system of Public Updates is now active for users who have auto-update activated.

    John

    Wednesday, February 25, 2015 12:23 AM
  • Nope I'm somebody new.  This is the opposite problem for me, I don't want MS Project to copy the "external" links.  It never did before, and now suddenly it does. I have narrowed it down to the latest Project 2010 patch KB2589387, released on February 10th, 2015 that fixes a critical path disconnect between the stand alone version of Project and Project Server. (support.microsoft.com/kb/2589387) I checked with my co-worker, when he opens the same file and does a copy paste of a group of tasks his version does NOT copy the "external" links, and he does not have KB2589387 installed.  I have a ticket in with our IS department to uninstall this particular patch to confirm my theory. We do not use Project Server so this particular patch is irrelevant except for the fact that it changes the basic funcionality of MS Project as it has been for the last 20+ without warning (grrrrrrrr)! I'll let you know if it works. 

    Wednesday, February 25, 2015 4:09 PM
  • SL Hamilton,

    As I mentioned in my February 20th response above, this issue was fixed with the June 2013 cumulative update. And as I also mentioned, all updates thereafter, including the February 2015 update, are cumulative so that fix is in all updates. In my opinion, all links should follow a copy/paste operation, so indeed it was a bug that was fixed. If that is not the action you wish to happen, then if you want to take advantage of the many other critical fixes in cumulative updates, (e.g. Project crashing under certain conditions), then I suggest you leave the updates installed and manually, or through code, remove the "external" links after the paste operation.

    John

    Wednesday, February 25, 2015 5:48 PM
  • This was not a "bug". Copying only the links internal to the tasks you are copying is the way Project has always functioned for the last 20+ years. I had IS remove only the KB2589387 update which is specific to the interface between MS Project and Project Server, which we do not use.  And indeed the previous "internal links only" behavior is restored.  If KB2589387 is installed the "external" links are copied, if it's not installed  you get "internal" links only. 

    Also this behavior change was not included in the June 2013 cumulative update, but is behavior specific to the KB2589387 patch that was realeased just two weeks ago on February 10, 2015. Otherwise uninstalling it would not have restored the legacy functionality.

    Thanks for your insights! They are much appreciated.

    • Edited by SL Hamilton Wednesday, February 25, 2015 11:05 PM
    Wednesday, February 25, 2015 10:58 PM
  • SLHamilton,

    Indeed you may be correct about an "external" link not following when copying and pasting in previous versions of Project but I still believe that was erroneous behavior. If a task is a true predecessor then that link should follow the successor task wherever it might be in the file.

    However, if you now have Project 2010 working the way you want then that's great but please understand it was NOT the KB2589387 (i.e. February 2015 update) itself that changed the behavior but the change that was passed forward through all cumulative updates since the June 2013 cumulative update. I'm guessing the reason you only saw it now is because beginning with the February 2015, Project is now updated via the Office auto-update function. Previously users had to manually update Project, it was NOT updated with auto-update.

    John


    • Edited by John - Project Thursday, February 26, 2015 4:23 PM clarity
    Thursday, February 26, 2015 2:49 AM