Re: GRAHAM MAYOR - Re: Macro in Normal.dot prevents Word opening

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance



Wow! That actually worked! I'm shocked!! THANKS GRAHAM!

I guess I'd misunderstood your website's explanation (about changing .dot to
..old) and just figured that was just a random example of how to rename the
template file so it wouldn't automatically kick in as Normal.dot when Word
opened.

Anyway... This is EXCELLENT. Not only do I have access to the macros again
but I also know that the problem is somewhere in the coding itself because
Word crashes when I try to open it after moving the 3 macros from Normal.old
into Normal.dot. Hmm, I wonder what the snag is. I just took a quick peek at
the codes and they SEEMED fine. But clearly something is still wrong.

So here's what's odd: (1) when I tried to open Word with all 3 macros in the
new Normal.dot it crashed, (2) when I tried to open it with only 1 macro at a
time in Normal.dot it crashed, BUT (3) when I copied those 1-3 macros to a
different template file (NotNormal.dot) & then tried to open Word by opening
a document formatted with NotNormal.dot, Word opened perfectly. So what does
that tell us?? I haven't a clue. I guess there's something in one or all of
the codes (& that wasn't there in the 2nd template that worked all along)
that really doesn't work well with the built in processes of Normal.dot. Hmm.

The same problem is happening when I try to open my current attempt at
writing an archiving code. It works great in any other template, but crashes
the program when I put it into Normal.
Could some good samaritan look at the code and tell me which part is
incompatible with Normal.dot?? The following is the AutoClose routine from my
most recent attempt at this archiving macro. It's supposed to check whether
the open doc is 'flagged' for archiving and, if it is, to copy it to an
archive folder. I've got a separate subroutine that can be called from the
toolbar and that's used to 'flag' the open doc & archive an instant
'snapshot' of the file without having to wait until the doc is closed. Ok, so
here's the code (& yes I know it's wordy but I like it to be intuitively
readable even months after it's written):
________________________________________________________--
Sub AutoClose()
'
Dim WSHShell, RegKey, rkeyWord, Result
Set WSHShell = CreateObject("WScript.Shell")
Dim TodaysDate As String, OldVersionPath As String, OldVersionFile As
String, OldVersionName As String
Dim NewVersionFile As String, intPos As Integer, DirExists As Boolean,
OldVersionFileNPath As String
Dim NewVersionPath As String, NewVersionFileNPath As String, fso,
MyRecentFile As RecentFile
Dim FirstTimeArchiving As Boolean
Set fso = CreateObject("Scripting.FileSystemObject")

On Error GoTo CancelledByUser
ActiveDocument.Save

FirstTimeArchiving = False
OldVersionFile = ActiveDocument.Name 'Get document name
OldVersionName = Left(OldVersionFile, Len(OldVersionFile) - 4)
'remove the file extention

Start:
RegKey = "HKEY_CURRENT_USER\Software\Microsoft\Office\Word\Settings\"
On Error Resume Next 'No entry in registry will flag an error
rkeyWord = WSHShell.RegRead(RegKey & OldVersionName)
If rkeyWord = "" Then 'If the registry entry doesn't exist (i.e. the
file hasn't been flagged to be archived)
GoTo StopCode
Else 'if it HAS been set for archiving...
On Error GoTo CancelledByUser
OldVersionPath = ActiveDocument.Path 'Get path
OldVersionFileNPath = OldVersionPath & "\" & OldVersionFile 'Get
document's full name & path
NewVersionPath = "C:\Documents and Settings\{USER}\Word
Archive\Archived '" & OldVersionName & "'"
'Checks if an archive folder exists &, if not, makes one
If Not fso.FolderExists(NewVersionPath) Then
fso.CreateFolder (NewVersionPath)
End If
'Define the new version's filename
TodaysDate = Format((Date), "yyyy-mm-dd")
NewVersionFile = OldVersionName & " (" & TodaysDate & ").doc"
NewVersionFileNPath = NewVersionPath & "\" & NewVersionFile
'copy the current/active document to the archive location & file
name (without adding it to the 'Recent Files' list)
WordBasic.CopyFileA FileName:=OldVersionFileNPath,
Directory:=NewVersionFileNPath
If FirstTimeArchiving = True Then
MsgBox "The current version of this document has been archived.
It will now be archived whenever it's closed."
End If
End If
GoTo StopCode

CancelledByUser: 'Trap the pressing of the Cancel button
MsgBox "There was a problem running the code & this file version wasn't
archived.", , "Archiving Cancelled"
GoTo StopCode
StopCode:
End Sub
_________________________________________________-
So can you what might be messing with my code when it's put in Normal.dot?

Thanks for all of your help so far!! You guys have been great, especially
you Graham!!
.



Relevant Pages

  • Re: GRAHAM MAYOR - Re: Macro in Normal.dot prevents Word opening
    ... autoopen/autonew/autoexec macros and the content of any add-ins. ... from my most recent attempt at this archiving macro. ... Dim TodaysDate As String, OldVersionPath As String, OldVersionFile ... As String, OldVersionName As String ...
    (microsoft.public.word.vba.general)
  • Re: GRAHAM MAYOR - Re: Macro in Normal.dot prevents Word opening
    ... autoopen/autonew/autoexec macros and the content of any add-ins. ... from my most recent attempt at this archiving macro. ... Dim TodaysDate As String, OldVersionPath As String, OldVersionFile ... As String, OldVersionName As String ...
    (microsoft.public.word.vba.general)
  • Re: GRAHAM MAYOR - Re: Macro in Normal.dot prevents Word opening
    ... other than the nearly-identical AutoClose & manual archiving ... macros, I haven't added to or changed the default Normal.dot template. ... Dim TodaysDate As String, OldVersionPath As String, ... OldVersionFile As String, OldVersionName As String ...
    (microsoft.public.word.vba.general)
  • RE: Macro in Normal.dot prevents Word from opening or debugging!
    ... If you think its your code, disable the Macros in your security settings. ... into my Normal.dot template & added some lines to check whether a given file ... had had archiving enabled - if not, the file SHOULD have opened & closed as ... Dim iCount As Integer, StrDate As String, StrPath As String, StrFile As ...
    (microsoft.public.word.vba.general)
  • Re: GRAHAM MAYOR - Re: Macro in Normal.dot prevents Word opening
    ... other than the nearly-identical AutoClose & manual archiving ... macros, I haven't added to or changed the default Normal.dot template. ... A defective printer driver can be a cause of hard-to-identify crashes. ... As String, OldVersionName As String ...
    (microsoft.public.word.vba.general)