View Single Post
  #19   Report Post  
Posted to microsoft.public.excel.programming
Peter T Peter T is offline
external usenet poster
 
Posts: 5,600
Default 2003 - 2000 incompatability

Actually, whether luck or judgement, you have come up with something
potentially quite useful. Nice one!

Regards,
Peter T

"john" wrote in message
...
Yep - more luck than judgement - hope we have not confused Dale too much!
nice chating to you guys!
--
JB


"Peter T" wrote:

Yes it was surprising to me too. As written it also works in XL97

subject
changing xlSortNormal to a number in the DataOption1 argument.

Debug-Compile
even works with Option Explicit

There's an explanation and a catch - it only works like this:

With Selection
or
Dim objRange as Object 'OK
With objRange ' OK

but -
Dim rng as Range
With rng ' fails
or
With Range("A2:A10") ' fails

both fail with "named argument not found", DataOption1 highlit

Now it all makes sense !

Regards,
Peter T


"Dave Peterson" wrote in message
...
That's interesting (and surprising to me).

Do you have xl97 to test, too? Just curious.



Peter T wrote:

Hi Dave,
Earlier I suggested pretty much the same as you as to how to cater

for
multiple versions.
But somewhat to my surprise John's example does compile in my XL2k

providing
xlSortNormal is changed to its appropriate number.

Regards,
Peter T

"Dave Peterson" wrote in message
...
I don't think that this will compile in xl2k. That DataOption1

portion
will
cause a compile error.

There are workarounds, though.

if val(application.version) < 11 then
'do the sort right here
else
'call a routine in a different module that is written for

xl2002+
end if

By having the routine in a different module, xl2k won't even try

to
compile it.

john wrote:

if it's just sort routine causing problems then you could test

for
excel
version - something like:(not tested)

With Selection
If Val(Application.Version) < 11 Then
.Sort Key1:=Range("A2"), _
Order1:=xlAscending, _
Header:=xlYes, _
MatchCase:=False, _
Orientation:=xlTopToBottom
Else
.Sort Key1:=Range("A2"), _
Order1:=xlAscending, _
Header:=xlYes, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End If
End With
However, if more than this then follow Peter T suggestion.
--
JB

"Peter T" wrote:

Remove arguments OrderCustom:=1 and DataOption1:=xlSortNormal

which
are n/a
in XL2000.

If required, you can make version specific functions by

placing
the
code
that won't be recognized in say XL2000 in a module that will

only
contain
procedures that will be called in later versions.

Regards,
Peter T

"Dale Fye" wrote in message
...
I've got an Excel application that was written in 2003. Now

I
find
out I
have a user that is still using 2000, and at least one

segment
of my
2003
code is not working. I have a routine that selects a

worksheet,
and
sorts
it
by a particular field. When this user runs this code, it

bomb
on
the last
line of the code provided below.

Selection.Sort Key1:=Range("A2"), _
Order1:=xlAscending, _
Header:=xlYes, _
OrderCustom:=1, _
MatchCase:=False, _
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

I don't know whether this is because Excel 9.0 is not

recognizing
the
DataOption1 or the xlSortNormal, or something else in the

Sort
method.
Would
greatly appreciate if someone could provide the correct code

to
run
this
in
Excel 9.0.

Thanks.
--
Don''t forget to rate the post if it was helpful!

email address is invalid
Please reply to newsgroup only.





--

Dave Peterson

--

Dave Peterson