ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   GetOpenFilename - Trapping Errors (https://www.excelbanter.com/excel-programming/358417-getopenfilename-trapping-errors.html)

Tim Childs

GetOpenFilename - Trapping Errors
 
Hi

I used the VB Example code from Microsoft Help but wanted to select MULTIPLE
files and have Option Explicit declared. The error trapping no longer worked
properly for no file being selected n the dialog box- can someone give me a
hand in getting it to work.

Thanks

Tim

Option Explicit
Sub ImportBudgetFileData()

Dim FileToOpen

FileToOpen = Application _
.GetOpenFilename("Text Files (*.xls), *.xls", , , , True)
'If FileToOpen(1) < False Then
' MsgBox "Open " & FileToOpen
'End If



Ron de Bruin

GetOpenFilename - Trapping Errors
 
You can use

If IsArray(FileToOpen ) = False Then
'do nothing
Else


--
Regards Ron de Bruin
http://www.rondebruin.nl


"Tim Childs" wrote in message ...
Hi

I used the VB Example code from Microsoft Help but wanted to select MULTIPLE
files and have Option Explicit declared. The error trapping no longer worked
properly for no file being selected n the dialog box- can someone give me a
hand in getting it to work.

Thanks

Tim

Option Explicit
Sub ImportBudgetFileData()

Dim FileToOpen

FileToOpen = Application _
.GetOpenFilename("Text Files (*.xls), *.xls", , , , True)
'If FileToOpen(1) < False Then
' MsgBox "Open " & FileToOpen
'End If





Tim Childs

GetOpenFilename - Trapping Errors
 
Ron

MANY thanks

Tim


"Ron de Bruin" wrote in message
...
You can use

If IsArray(FileToOpen ) = False Then
'do nothing
Else


--
Regards Ron de Bruin
http://www.rondebruin.nl


"Tim Childs" wrote in message

...
Hi

I used the VB Example code from Microsoft Help but wanted to select

MULTIPLE
files and have Option Explicit declared. The error trapping no longer

worked
properly for no file being selected n the dialog box- can someone give

me a
hand in getting it to work.

Thanks

Tim

Option Explicit
Sub ImportBudgetFileData()

Dim FileToOpen

FileToOpen = Application _
.GetOpenFilename("Text Files (*.xls), *.xls", , , , True)
'If FileToOpen(1) < False Then
' MsgBox "Open " & FileToOpen
'End If







GS

GetOpenFilename - Trapping Errors
 
Hi Tim,

The example code in VBA Help doesn't work if MultiSelect is set to true.
Setting MultiSelect to TRUE results in VBA expecting an array, even if it's
only a single selection. You may want to consider the following code (by John
Walkenbach) if you intent to work with an array of filenames:

Sub GetImportFileName2()
Dim Filt As String
Dim FilterIndex As Integer
Dim FileName As String
Dim Title As String
Dim i As Integer
Dim Msg As String

' Set up list of file filters
Filt = "Text Files (*.txt),*.txt," & _
"Lotus Files (*.prn),*.prn," & _
"Comma Separated Files (*.csv),*.csv," & _
"ASCII Files ((*.asc),*.asc," & _
"All Files (*.*),*.*"

' Display *.* by default
FilterIndex = 5

' Set the dialog box caption
Title = "Select a file to import"

' Get the filename
FileName = Application.GetOpenFilename _
(FileFilter:=Filt, _
FilterIndex:=FilterIndex, _
Title:=Title, _
MultiSelect:=True)

' Exit if dialog box canceled
If Not IsArray(FileName) Then
MsgBox "No file was selected."
Exit Sub
End If

' Display full path and name of the files
For i = LBound(FileName) To UBound(FileName)
Msg = Msg & FileName(i) & vbCrLf
Next i
MsgBox "You selected:" & vbCrLf & Msg
End Sub

HTH
Regards,
GS

GS

GetOpenFilename - Trapping Errors
 
A mistake exists in the declarations. The correction:

Dim FileName As String

should be:

Dim FileName As Variant

Regards,
GS

Tim Childs

GetOpenFilename - Trapping Errors
 
Hi

Many thanks for this response - I found the help on filters useful, too

bw

Tim


"GS" wrote in message
...
Hi Tim,

The example code in VBA Help doesn't work if MultiSelect is set to true.
Setting MultiSelect to TRUE results in VBA expecting an array, even if

it's
only a single selection. You may want to consider the following code (by

John
Walkenbach) if you intent to work with an array of filenames:

Sub GetImportFileName2()
Dim Filt As String
Dim FilterIndex As Integer
Dim FileName As String
Dim Title As String
Dim i As Integer
Dim Msg As String

' Set up list of file filters
Filt = "Text Files (*.txt),*.txt," & _
"Lotus Files (*.prn),*.prn," & _
"Comma Separated Files (*.csv),*.csv," & _
"ASCII Files ((*.asc),*.asc," & _
"All Files (*.*),*.*"

' Display *.* by default
FilterIndex = 5

' Set the dialog box caption
Title = "Select a file to import"

' Get the filename
FileName = Application.GetOpenFilename _
(FileFilter:=Filt, _
FilterIndex:=FilterIndex, _
Title:=Title, _
MultiSelect:=True)

' Exit if dialog box canceled
If Not IsArray(FileName) Then
MsgBox "No file was selected."
Exit Sub
End If

' Display full path and name of the files
For i = LBound(FileName) To UBound(FileName)
Msg = Msg & FileName(i) & vbCrLf
Next i
MsgBox "You selected:" & vbCrLf & Msg
End Sub

HTH
Regards,
GS





All times are GMT +1. The time now is 06:28 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com