View Single Post
  #10   Report Post  
Posted to microsoft.public.excel.programming
Bob Phillips[_6_] Bob Phillips[_6_] is offline
external usenet poster
 
Posts: 11,272
Default Selection method not available in VB when referencing Excel worksheet

Okay, I stand corrected <vbg.

John has explained why you might be getting an error, but you might also
consider an alternative. Instead of having the user select a range and then
activating the DLL, you could invoke the DLL, and then use
Application.InputBox with a Type argument of 8, so the user can then select
a range, and you can reference that. Just a thought.

--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)

"Oscar" wrote in message
. nl...

I've written a VB Active-X dll that exposes methods which are called

within
the VBA macros in a Excel worksheet. I've done that in order to protect

the
source and to gain speed since compiled active-X dll are faster than VBA
internal codes. Up to now I've been able to adress anything that I needed

by
referencing to the Excel.worksheet object. I have even been able to
reference controls such as comboboxes on top of the Excel worksheet by the
dll. Now I need to do some processing with selections made by the user in
this way :

user makes a range selection.
user activates a macro by pressing F8 (this macro calls the processing
routine within a class within the Active-X dll)
the class method performs the processing within the range that was

selected
by the user.

Oscar


"Bob Phillips" schreef in bericht
...
Oscar,

To reference the selection, you will need to select something. This

means
that a workbook will need to be activated, as will a worksheet, and a

range
will need to be selected.

However, it is rarely necessary to select in Excel VBA, let alone VB.

What
exactly are you trying to do?

--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)

"Oscar" wrote in message
. nl...
John,

yes, that's the case. I am able to reference the selection in this

way,
but
I can't adress any members such as .row or .rows inside the

'selection'
method, The VB IDE doesn't show them and in case I write

oxlWkb.Application.Selection.Row or
oxlWkb.Application.Selection.Rows or
oxlWkb.Application.Selection.Range

the compiler fires an error in runtime. Could you please explain what

I
need
to do after the oxlWkb.Application.Selection statement in order to

find
out
the row numbers of the toprow and bottomrow.
regards,
Oscar




"John Green" schreef in bericht
...
Oscar,

Are you saying that you are writing code in VB (not VBA) and that

you
have
an object variable referring to an active Excel workbook
(say oxlWkb)? If so, one way to refer to the current selection is:

oxlWkb.Application.Selection

--

John Green - Excel MVP
Sydney
Australia


"Oscar" wrote in message
.nl...
In a VB application, I am referencing an Excel workbook. I need to

know
the
row number of the toprow and bottomrow of any range selection.

Therefore
I
want to use the selection object. However, the 'selection' object

is
not
available for the Excel.worksheet method and is only available for

the
Excel.application and it doesn't show any method after selection.

For
example I can't use selection.rows. How can I change this ?

Oscar