MKG was telling us:
MKG nous racontait que :
I need help creating a macro to do the following:
When any file is opened (I'm thinking this will be an autoopen
macro), the macro will read the document's extension, and if it's a
particular extension will automatically save it to the C drive with
the same name but in another format.
So it's not just giving the file a different extension, it's actually
changing it from one format (such as RTF or TXT) to Word 2003 format
(.doc).
Is it possible to write such a macro?
You would need something like this:
'_______________________________________
Dim docOpened As Document
Dim strDocPath As String
Dim strDocName As String
Dim strDocNameExt As String
Const strSavePathTxt As String = "C:\SavePath\txt\"
Const strSavePathRtf As String = "C:\SavePath\rtf\"
Set docOpened = ActiveDocument
With docOpened
strDocPath = .FullName
strDocName = Left(.Name, Len(.Name) - 3)
strDocNameExt = LCase(Right(.Name, 3))
Select Case strDocNameExt
Case "txt"
.SaveAs strSavePathTxt & strDocName & "doc"
.Close
Case "rtf"
.SaveAs strSavePathRtf & strDocName & "doc"
.Close
End Select
End With
Documents.Open strDocPath
'_______________________________________
If you certain that all the documents concerned will always be based on
Normal.dot, you could store the macro in the ThisDocument module of
Normal.dot, under the Document_Open sub.
If not, to make this work on all documents, you would need to store the
macro in a global template (one that is in the Startup folder as defined
under Tools > Options... > File Locations tab> Startup folder). Also, you
would need an event that would detect the opening of any document. This is
no beginner stuff, but you can look at:
http://word.mvps.org/FAQs/MacrosVBA/AppClassEvents.htm
--
Salut!
_______________________________________
Jean-Guy Marcil - Word MVP
(e-mail address removed)
Word MVP site:
http://www.word.mvps.org