View Single Post
  #19   Report Post  
Posted to microsoft.public.word.newusers
Doug Robbins - Word MVP Doug Robbins - Word MVP is offline
external usenet poster
 
Posts: 8,832
Default Automatic Path with Date

Name the macro FileSaveAs

It will then run when you use the FileSaveAs command.

--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP, originally posted via msnews.microsoft.com

"janey" wrote in message
...
Hi Doug, I used that macro and got:

Smith.docx

When I opened it and saved it again, I got two 'Save As' boxes. I saved it
twice and it saved as Smith 2010-03-03.docx (which is what I want) but did
not delete the original Smith.docx.

How do I get the macro to run automatically on a new file saved for the
first time, please?



"Doug Robbins - Word MVP" wrote in message
...
Running a macro with this code

Dim Fkill As String
Dialogs(wdDialogFileSaveAs).Show
With ActiveDocument
Fkill = .FullName
.SaveAs .Name & " " & Format(Date, "yyyy-mm-dd")
End With
Kill Fkill

Will display the FileSaveAs dialog and if you enter a name such as Smith
into that dialog and click OK, it will save the document with the
initially with the name Smith.doc, then it will save a copy of the
document with the name Smith 2010-03-01.doc and then it will delete the
original file Smith.doc

--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP, originally posted via msnews.microsoft.com

"janey" wrote in message
...
I want to create a document and save with the document name which I give
it, followed by the date.

"Doug Robbins - Word MVP" wrote in message
...
What do you really want in place of Document1? Is the user intended to
supply the name of the document to replace that?

--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP, originally posted via msnews.microsoft.com

"janey" wrote in message
...
Thanks for the suggestions.

I have tried the last two solutions but, in each case, got:

Document1.docx 2101-03-01

What I really want is:
Create new document (based on a particular template)
Save
Document1 2010-03-01.docx

Not sure how to transpose the item in the macro.


"Graham Mayor" wrote in message
...
Hmmm! I am not sure how that takes us forward here. As I see it, the
problem is in the use of ActiveDocument.Name to rename the document.
If the document has not been saved this will result in
Document1 2010-03-01.docx
If the document has already been saved with that name the macro will
save with the name
Document1 2010-03-01.docx 2010-03-01.docx
You need to test whether the document has been saved and then if not
prompt for the part of the filename before the date. If then the
document has been saved, you could eliminate the date from the
filename and add a new name. This of course will delete any document
of the same name saved on the same date.
There seems little point showing the Dialog(wdDialogFileSaveAs)
unless you are going to offer the dated name to the user, and it will
add confusion as any name the user enters in the dialog will be
overwritten. For a document template for a particular task something
like the following might suffice

Dim sName As String
Dim vName As Variant
With ActiveDocument
If Len(.Path) = 0 Then
.Save
sName = .name
'or instead of the previous 2 lines
'sName = InputBox("Enter filename (without the date)")
Else
vName = Split(.name, ".")
sName = Left(vName(0), Len(vName(0)) - 11)
End If
With Dialogs(wdDialogFileSaveAs)
.name = sName & " " & Format(Date, "yyyy-mm-dd")
.Show
End With
End With

If you want something a little more universally applicable - see
http://www.gmayor.com/save_numbered_versions.htm


--

Graham Mayor - Word MVP

My web site www.gmayor.com
Word MVP web site http://word.mvps.org



"Doug Robbins - Word MVP" wrote in message
...
Use:

Dim Fkill As String
Dialogs(wdDialogFileSaveAs).Show
With ActiveDocument
Fkill = .FullName
.SaveAs .Name & " " & Format(Date, "yyyy-mm-dd")
End With
Kill Fkill


--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of
my
services on a paid consulting basis.

Doug Robbins - Word MVP, originally posted via msnews.microsoft.com

"janey" wrote in message
...
I think I must be missing something!

I want to use this macro in my office templates only.
I started with just one of them e.g. Office1.dot (which I brought
over from Word 2003 to 2007).
I created a macro called FileSaveAs:

Sub FileSaveAs()
'
' FileSaveAs Macro
' Saves a copy of the document in a separate file
'
With Dialogs(wdDialogFileSaveAs)
If .Display Then
With ActiveDocument
.saveas .Name & " " & Format(Date, "yyyy-mm-dd")
End With
End If
End With
End Sub

I then closed the template and opened a new document based on it.
When I pressed Save and put in a file name, e.g. Test, I got a file
called "Document1 2010-02-28.docx

How do I get this to be: Test 2010-02-28.docx please?

When I have this right, do I have to put the same macro in my other
office templates individually?


"Graham Mayor" wrote in message
...
Instead of naming it FileSaveAs() call it something else and run
it from a toolbar button or suitable keyboard shortcut.
or
Insert the FileSaveAs macro only in the template that requires
it - and not the normal template.

--

Graham Mayor - Word MVP

My web site www.gmayor.com
Word MVP web site http://word.mvps.org



"janey" wrote in message
...
I was very interested in this reply as I save documents in this
way so it will save me having to put the date in each time I
create a document.

However, is there a way of NOT running this macro - e.g. if I am
creating a template which does not need to have the date in the
name?



"Doug Robbins - Word MVP" wrote in
message ...
Use a macro containing the following commands:

With Dialogs(wdDialogFileSaveAs)
If .Display Then
With ActiveDocument
.SaveAs Format(Date, "yyyy-mm-dd") & " " & .Name
End With
End If
End With

If you create the macro with the name of Sub FileSaveAs() in
your normal.dot template or in an add-in, it will run whenever
the FileSaveAs command is used.

--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself
of my
services on a paid consulting basis.

Doug Robbins - Word MVP, originally posted via
msnews.microsoft.com

wrote in message
...
I have some questions hopefully someone can assist.

I want to save my word documents by default in the d:\path
location
with the following format

"2010-02-26 File Name.doc "- I would like to insert the date
automatically.

Appreciate your assistance.