1

I am looking for a vba command which checks first whether MS Project plan is checked out in the server. If it is not checked out then trigger the macros saved in the MS Project plan and if it is checked out by any other user, then skip that particular MS Proj plan and move to the next one. I am using below command but it is not getting validated:

If objProject.IsCheckedOut(docCheckOut) = False Then objProject.ActiveProject.CheckoutProject

where, docCheckOut is the MS Project plan.

Full Code:

Sub Test()

        Dim mppName, mppFiles(0 To 2), strMacroName(0 To 3) As String
        Dim fileCounter, macroCounter As Integer
        Dim objProject As Object
        Dim docCheckOut As String

        mppFiles(0) = "CMD_mpp1"
        mppFiles(1) = "CMD_mpp2"
        mppFiles(2) = "CMD_mpp3"

        strMacroName(0) = "CMD_Macro1"
        strMacroName(1) = "CMD_Macro2"
        strMacroName(2) = "CMD_Macro3"
        strMacroName(3) = "CMD_Macro4"

        Set objProject = CreateObject("MSProject.Application")

        Application.DisplayAlerts = False
        objProject.DisplayAlerts = False
'
        For fileCounter = 0 To 2
               docCheckOut = mppFiles(fileCounter)

               On Error GoTo L1
               objProject.FileOpenEx Name:="<>\" & docCheckOut, ReadOnly:=True, DoNotLoadFromEnterprise:=False
               objProject.Application.Visible = True

        If objProject.IsCheckedOut(docCheckOut) = False Then
                objProject.ActiveProject.CheckoutProject
                    If objProject.IsCheckedOut(objProject.ActiveProject.Name) Then
                        MsgBox "checked out"
                        For macroCounter = 0 To 3
                            objProject.Application.Macro strMacroName(macroCounter)
                            objProject.Application.FileSave
                            objProject.Application.Publish
                        Next macroCounter
        Else
                MsgBox "Not checked out"
                GoTo L1
        End If


L1:    Next fileCounter

        Application.DisplayAlerts = True
        objProject.DisplayAlerts = True
End Sub

Can anyone please suggest other command if any?

Martijn Pieters
  • 1,048,767
  • 296
  • 4,058
  • 3,343
Megha
  • 25
  • 5
  • Related: [stackoverflow.com/questions/38877773/is-there-vba-code-to-see-if-enterprise-project-2013-file-is-checked-out-before-opening](https://stackoverflow.com/questions/38877773/is-there-vba-code-to-see-if-enterprise-project-2013-file-is-checked-out-before-o) – Rachel Hettinger Mar 25 '19 at 18:19
  • Many Thanks Rachel. It solved my issue. – Megha Mar 29 '19 at 05:57

0 Answers0