View Single Post
  #6   Report Post  
Posted to microsoft.public.excel.programming
Dave Peterson Dave Peterson is offline
external usenet poster
 
Posts: 35,218
Default What's the most efficient to check a file name is valid?

What's in TargetName when you use that line?

What's in the targetname when it comes back?

In my simple tests, I couldn't break it.

Robert Mulroney wrote:

That's just the problem I thought that the GetSaveAsFilename would check the
resulting string's validity but it doesn't appear to be doing it. The "Save
As" dialogue just spits back whatever it's given. Am I doing something wrong?

Dim TargetName as String

TargetName = Application.GetSaveAsFilename(TargetName, _
fileFilter:="Excel Files (*.xls), *.xls")

.

' Some Other Stuff
.

'Save the file
Call ActiveWorkbook.SaveAs(TargetName)
ActiveWorkbook.Close

- Rm

"Dave Peterson" wrote:

Is this so you can ask the user for a name and then save it as that name?

If yes, then I would think that the best thing to do would be to not test it at
all. Just use application.GetSaveAsFilename and let the operating system take
care of it.

If you're gonna use a cell in a worksheet and want to validate that, I wouldn't
bother.

I'd just try saving the workbook with that name and see if there was an error.

on error resume next
with activesheet
.parent.saveas filename:="C:\somefolder\" & .range("a1").value & ".xls", _
fileformat:=xlworkbooknormal
end with
if err.number < 0 then
msgbox "it didn't save
err.clear
end if
on error goto 0

=====
Not only are there characters that can't be used in filenames, there are some
names that can't be used--the old DOS devices: LPT1, LPT2, CON, PRN and the
like.

===
Well, I would check to see if cell was empty first--just in case.




Robert Mulroney wrote:

What is the most efficient way for checking that a potential file name is
valid ?

File names cannot include some charaters like * / : \ ? < is there a
function somewhere that checks a file name and pop's up the windows "invalid
file name" dialogue?

- Rm


--

Dave Peterson


--

Dave Peterson