Prev: code to see if template has custom buttons or menus
Next: User Form to Replace Master & SubDocument
From: Richard on 4 May 2010 11:21 Hi I have a document which is opened from an original & immediately saved to a new location to preserve the macros (which seem not to be preserved using a template). This works fine from the original, & on a number of subsequent openings, but if emailed to a different location on opening again the dreaded Run time error seems to appear. the code I am using is below: ==================================== Private Sub Document_Open() Dim strMessage As String Dim strDocPath As String Dim strNewPath As String Set aDoc = ActiveDocument If ActiveDocument.ProtectionType <> wdNoProtection Then aDoc.Unprotect End If Set aDoc = Nothing Set rngTable = ActiveDocument.Tables(1).Rows(4).Cells(2).Range strMessage = Left(rngTable.Text, Len(rngTable.Text) - 2) If strMessage = "Unopened" Then strDocPath = ActiveDocument.Path MsgBox "This document needs to be saved now to Sharepoint" & Chr(10) & "(My Network Places & Folder of your choice)" On Error Resume Next Store: Dialogs(wdDialogFileSaveAs).Show strNewPath = ActiveDocument.Path If strDocPath = strNewPath Then strMessage = MsgBox("You cannot proceed unless the document is saved" & Chr(10) & "Do you wish to continue (OK) or exit (Cancel)?", vbOKCancel) If strMessage = 1 Then GoTo Store Else ActiveDocument.Protect Type:=wdAllowOnlyFormFields, NoReset:=True ActiveDocument.Save ActiveDocument.Close Quit End If End If End If Set rngTable = ActiveDocument.Tables(1).Rows(4).Cells(2).Range rngTable.Text = "" ActiveDocument.Protect Type:=wdAllowOnlyFormFields, NoReset:=True ActiveDocument.Save 'THIS IS THE LINE HIGHLIGHTED WHEN THE ERROR OCCURS On Error GoTo 0 End Sub The failure occurs on the 'ActiveDocument.Save' line. I am at a loss why this should happen, especially as I had 'On error Resume next' earlier in the code to avoid this happening. Any ideas anyone? Thanks for listening!! -- Richard
From: Fumei2 via OfficeKB.com on 4 May 2010 14:42 1. are you using Option Explicit? 2. I am not sure you can declare the start of a sub-routine (Store:) in the middle of an IF statement. IF yadda yadda Store: IF blah blah THEN IF hohum THEN whatever Else whatever else End IF End IF End IF 3. You declare and SET aDoc as ActiveDocument, but never use it. 4. You appear to have a Quit instruction...then keep on using Word. I am having a hard time following what you are doing. Gerry Richard wrote: >Hi > >I have a document which is opened from an original & immediately saved to a >new location to preserve the macros (which seem not to be preserved using a >template). > >This works fine from the original, & on a number of subsequent openings, but >if emailed to a different location on opening again the dreaded Run time >error seems to appear. > >the code I am using is below: > >==================================== > >Private Sub Document_Open() >Dim strMessage As String >Dim strDocPath As String >Dim strNewPath As String > >Set aDoc = ActiveDocument >If ActiveDocument.ProtectionType <> wdNoProtection Then >aDoc.Unprotect >End If >Set aDoc = Nothing > >Set rngTable = ActiveDocument.Tables(1).Rows(4).Cells(2).Range >strMessage = Left(rngTable.Text, Len(rngTable.Text) - 2) >If strMessage = "Unopened" Then > strDocPath = ActiveDocument.Path > MsgBox "This document needs to be saved now to Sharepoint" & Chr(10) & >"(My Network Places & Folder of your choice)" > >On Error Resume Next > >Store: > Dialogs(wdDialogFileSaveAs).Show > > strNewPath = ActiveDocument.Path > If strDocPath = strNewPath Then > strMessage = MsgBox("You cannot proceed unless the document is >saved" & Chr(10) & "Do you wish to continue (OK) or exit (Cancel)?", >vbOKCancel) > If strMessage = 1 Then > GoTo Store > Else > ActiveDocument.Protect Type:=wdAllowOnlyFormFields, >NoReset:=True > ActiveDocument.Save > ActiveDocument.Close > Quit > End If > End If >End If > >Set rngTable = ActiveDocument.Tables(1).Rows(4).Cells(2).Range >rngTable.Text = "" > >ActiveDocument.Protect Type:=wdAllowOnlyFormFields, NoReset:=True >ActiveDocument.Save 'THIS IS THE LINE HIGHLIGHTED WHEN THE ERROR OCCURS > >On Error GoTo 0 > >End Sub > >The failure occurs on the 'ActiveDocument.Save' line. >I am at a loss why this should happen, especially as I had 'On error Resume >next' earlier in the code to avoid this happening. > >Any ideas anyone? >Thanks for listening!! > -- Gerry Message posted via OfficeKB.com http://www.officekb.com/Uwe/Forums.aspx/word-programming/201005/1
|
Pages: 1 Prev: code to see if template has custom buttons or menus Next: User Form to Replace Master & SubDocument |