Exit Macro if<>vbYes

M

Mike

I have this code and it works good. But how can i get it to exit the macro if
<> vbyes

Thanks Mike

Set FD = Application.FileDialog(msoFileDialogOpen)
With Application.FileDialog(msoFileDialogOpen)

If .Show Then .Execute

End With
 
O

OssieMac

I take it that you mean if the user cancels instead of actually selecting a
file.
The following is straight out of VBA help for Excel 2007 and might help.
Note that it does not open the file, you need to do that with a separate
open statement.

Sub Test_File_Select()

Dim fd As FileDialog
Dim vrtSelectedItem As Variant

Set fd = Application.FileDialog(msoFileDialogOpen)

With fd

'Limit user to select single file.
'Note use Ctrl key to multiselect if true

.AllowMultiSelect = False

'Use the Show method to display the File Picker _
'dialog box and return the user's action.
'If the user presses the button...

If .Show = -1 Then

'Step through each string in the _
'FileDialogSelectedItems collection.

For Each vrtSelectedItem In .SelectedItems

'vrtSelectedItem is aString that contains _
'the path of each selected item.
'You can use any file I/O functions that _
'you want to work with this path.
'This example displays the path in a _
message box.

MsgBox "Selected item's path: " & vrtSelectedItem

Next

Else
MsgBox "User pressed cancel"
End If
End With


End Sub
 
B

Bob Phillips

With Application.FileDialog(msoFileDialogOpen)

.Show
If .SelectedItems.Count = 0 Then
Exit Sub
End If

End With


--
HTH

Bob

(there's no email, no snail mail, but somewhere should be gmail in my addy)
 
O

OssieMac

Not sure if you will need this or if you already know it but just in case to
save you from further problems.

If you use Bob Phillips' method then use the following to open the file if
selected:-

Workbooks.Open Filename:=.SelectedItems(1)

If you use the method I gave you then it is as follows:-

Workbooks.Open Filename:=vrtSelectedItem

Regards,

OssieMac
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top