GetOpenFilename xl2000 vs xl2002

G

Guest

Using GetOpenFilename with MultiSelect set to True, when you select files
using the <Shift> key they become highlighted and the last in the selection
also has a dashed border. In xl2002, the name of the file with the dashed
border apparently becomes the first element in the array even if it is the
last in the selection. The remainder are listed according to their order in
the folder. This is a departure from xl2000 and is screwing up a project of
mine.

I don't have xl2002 at home and can't double-check it. The above conclusion
was arrived at on Friday using a computer at work that had a program of mine
that was screwing up. The code I used to check it follows. Hoping somehow I
am confused or someone has a simple fix for this. Otherwise I have to create
a clunky patch.

Best regards,
Greg

Sub Test()
Dim FNs As Variant
Dim i As Long
With Application
FNs = .GetOpenFilename("Picture files(*.jpg), *.jpg", _
MultiSelect:=True)
End With
If TypeName(FNs) = "Boolean" Then Exit Sub
For i = LBound(FNs) To UBound(FNs)
MsgBox FNs(i)
Next
End Sub
 
R

Rowan Drummond

Hi Greg

I am on Excel 2002 SP2.

Using your test (changed jpeg to xls extension) I find the following. If
I use the shift key to select > 1 file the last file selected is indeed
the first element of the array. However, the other files are listed in
reverse order to how they appear in the folder i.e if my files in the
folder are listed as follows:
ABC.xls
GEF.xls
XYZ.xls
and I select ABC, hold down shift and then select XYZ the message boxes
appear in this order: XYZ.xls, GEF.xls, ABC.xls.

Alternately if I select XYZ.xls, hold shift and then select ABC.xls the
order in the array is ABC.xls, GEF.xls, XYZ.xls.

Hope this helps
Rowan
 
G

Guest

Hi Rowan,

I can't check it tonight but am confident from Friday's tests that when I
ran the code it returned the last of the selection (the file with the dashed
border) first followed by the others according to their index order in the
folder. Example:

ABC.jpg (selected first)
DEF.jpg
GHI.jpg
JKL.jpg (selected last with Shift key held down - dashed border)

Code returned path followed by "JKL.jpg", "ABC.jpg", "DEF.jpg", "GHI.jpg".
Computer in question had xl2002 (unknown build) with Windows XP. Using my
home computer (xl2000 (9.0.2720) with 2000 Professional) it doesn't matter
the order the files are selected. The code always returns (i.e. assigns the
files to the array) according to their index value in the folder. This is
what I want. Odd that you get different results.

I know I can always just select the last in the group first followed by the
first in the group (with the <Shift> key held down). This way the first in
the group will have the dashed border and will always become the first in the
array. However, others need to use the program and I can't have this
complication.

Regards,
Greg
 
R

Rowan Drummond

Hi Greg

Just tested it again and got the same results as before ie

ABC.xls (selected first)
DEF.xls
GHI.xls
JKL.xls (selected last with Shift key held down - dashed border)

Code returned "JKL.xls", "GHI.xls", "DEF.xls", "ABC.xls".

(Windows 2000 SP4)

I guess if the order is really important then you may have to sort the
array alphabetically.

Regards
Rowan
 
G

Guest

I got ahold of a laptop with xl2002 (10.6713.6626) SP3. I tested it and
confirmed what I got at work. Also, file extension and how the files are
arranged in the folder doesn't seem to matter. The order in which they are
returned to the array appears to be purely version dependant. Havn't found
any info on the logic so far.

Thanks for the help. Will continue to look.

Best regards,
Greg
 

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