using a filedialog box from a dll

G

Guest

I compiled a working dll with office XP developer (code below). It does the
following:
1) loads a folder picker dialog box.
2) I choose a folder and save it to a variable
3) when "OPEN" is clicked msgbox is generated
I am call this function via a custom menu item
Problem/Issue occurs when the if statement is being executed, Excel
hangs/stops responding. I think it has to do with the dialog being/not being
modal but there does not seem to be any way to change that. Also when the
diabox is ls loaded it does not get the focus. What is up with that?
Thanks in advance

Private Sub message()
MsgBox "Can you read this"
Dim DefaultDir As String
Set folder = Application.FileDialog(msoFileDialogFolderPicker)
If folder.Show <> 0 Then
DefaultDir = folder.SelectedItems.Item(1) & "\"
MsgBox "Default Dir is " & DefaultDir
ElseIf folder.Show = 0 Then
MsgBox "cancel button selected."
End If
End Sub
 
G

Guest

I can't answer your questions, but I know you don't want to use folder.show
twice:

Private Sub message()
MsgBox "Can you read this"
Dim DefaultDir As String
Set folder = Application.FileDialog(msoFileDialogFolderPicker)
If folder.Show <> 0 Then
DefaultDir = folder.SelectedItems.Item(1) & "\"
MsgBox "Default Dir is " & DefaultDir
Else
MsgBox "cancel button selected."
End If
End Sub

If it wasn't "Not zero", then it must be zero, so no need to show the dialog
a second time to ask the user again.
 
G

Guest

Thanks tom, a slight typo. after further review testing and pulling hair. I
have found out a think or two that I would like to add.
1) when I select my folder and select the "OPEN" button the msgbox opens a
new excel window. I have to ALT+TAB to find it and select the "OK" button on
the msgbox but the second generated excel window is still there. I have been
reading in the help and it says that when the filedialog box starts it waits
for user input and after the user selects "OPEN" or "CANCEL" VBA continues on
its mary way with the next line of code.
Hope this help
Thanks again for your help.
 

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