Reputation: 33
So I am using the FileDialog to select a folder full of images that I am putting into a PowerPoint presentation and I am having problems getting the right initial view to come up.
Here is what I have
strFolder = InitDir
Set fldr = Application.FileDialog(msoFileDialogFolderPicker)
With fldr
.Title = "Select a Folder"
.AllowMultiSelect = False
.ButtonName = "Select"
.InitialView = msoFileDialogViewList
.InitialFileName = "C:\Users\Daniel\My Pictures\" 'using to test code
If Right(strName, 1) <> "\" Then
strFolder = strFolder & "\"
End If
If .Show <> -1 Then
Exit Sub
Else
strFolder = .SelectedItems(1) & "\"
End If
End With
If I exlude the "\" after "My Pictures", all the folders in my user folder "Daniel" comes up in the initial view with "My Pictures" initially selected, but when I include the "\" after, what I presume is the "FileDialogViewList" just shows up. How do I get the "My Pictures" folder to come up initially.
Upvotes: 3
Views: 11174
Reputation: 1
I now see, that I forgot to check if the presetpath stored in sFolder, ended with a "\". I totaly overlooked this, which explained the 'strange' behavior.
If you place this line above the FileDialog, then all works out fine and there is no need for the ugly sendkeys "Solution"... :-)
If Right(sFolder, 1) <> Application.PathSeparator Then sFolder = sFolder & Application.PathSeparators
Full code (which worked for me):
If Right(sFolder, 1) <> Application.PathSeparator Then sFolder = sFolder & Application.PathSeparators
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Select a folder"
.AllowMultiSelect = False
.ButtonName = "Select"
.InitialView = msoFileDialogViewList
If Not .InitialFileName = sFolder Then
.InitialFileName = sFolder
End If
If .Show = -1 Then ' OK was pressed
sFolder = .SelectedItems(1) & "\"
Else
Exit Sub 'Cancel presssed, user wants to Quit.
End If
End With
Upvotes: 0
Reputation: 1
I noticed that the preset filePath somehow got selected, meaning the text was BLUE... For me, this was the solution:
' delete the selected text entry!
SendKeys ("{Delete}")
Full code (which worked for me):
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Select a folder"
.AllowMultiSelect = False
.ButtonName = "Select"
.InitialView = msoFileDialogViewList
If Not .InitialFileName = sFolder Then
.InitialFileName = sFolder
End If
' Apperently you need Sendkeys to delete the text entry...
SendKeys ("{Delete}")
If .Show = -1 Then ' OK was pressed
sFolder = .SelectedItems(1) & "\"
Else
Exit Sub 'Cancel presssed, user wants to Quit.
End If
End With
Upvotes: 0
Reputation: 1203
I had the similar problem and during debugging noticed, that in the case when the file or folder path is the same as is set for the file dialog box object in the moment of this object initialization, initial file name ise set not to the one which you want but to a user Documents folder. To overcome this problem for me helped this code snippet:
If Not fDialog.InitialFileName = filePath Then
fDialog.InitialFileName = filePath
End If
Upvotes: 0
Reputation: 379
The initialFileName that you have passed is incorrect that is why it is showing My Documents as an initial folder.Since in case of incorrect initialFileName default directory is shown. Try following path: C:\Documents and Settings\Daniel\My Documents\My Pictures\
Upvotes: 3