ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   refer to user selection (https://www.excelbanter.com/excel-programming/323906-refer-user-selection.html)

someguy

refer to user selection
 
Hi,

I'm trying to write a macro that can refer to certain cells that the
user has selected. Basically i want the user to be able to select certain
cells and call this macro. The macro then look at each cell and if there
is a value in the cell it add quotation marks to the value. How do I refer
to the range the user selected from my function/sub?

TIA

NickHK

refer to user selection
 
someguy,
Look into the event:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Target.Address gives you what you need.

NickHK

"someguy" wrote in message
7.142...
Hi,

I'm trying to write a macro that can refer to certain cells that the
user has selected. Basically i want the user to be able to select certain
cells and call this macro. The macro then look at each cell and if there
is a value in the cell it add quotation marks to the value. How do I

refer
to the range the user selected from my function/sub?

TIA




Bob Phillips[_6_]

refer to user selection
 
When the user selects cells, these can be accessed via the Selection range
property, such as

For Each cell In Selection
'do stuff on cell
Next cell

--

HTH

RP
(remove nothere from the email address if mailing direct)


"someguy" wrote in message
7.142...
Hi,

I'm trying to write a macro that can refer to certain cells that the
user has selected. Basically i want the user to be able to select certain
cells and call this macro. The macro then look at each cell and if there
is a value in the cell it add quotation marks to the value. How do I

refer
to the range the user selected from my function/sub?

TIA




Inderjit Rai

refer to user selection
 
Thanks Bob.....that was a lot easier than I thought :)





*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!

Neal Zimm

refer to user selection
 
Hi Bob -
I've got a roughly similar problem. In my application I'm building some
macros for customized cut and paste functions. (I'm NOT interested in the
value in the cells)

if the user selects one cell, (the active cell) l've been able to use;
row=activecell.row and col=activecell.column
in order to build statements like:
range(cells(row,col),cells(row+var1,col+var2).sele ct

My problem is that I've not been able to figure out from the Excel docum in
range properties how to get the row and column "coordinates" when the user
has selected part of a column, A1:A9 for example, or more importantly,
a "traditional" range like B2:E9

how do I get the upper left and lower right row and column numbers for the
cells that 'define' a user selected range?

Many thanks,
Neal Zimm




"Bob Phillips" wrote:

When the user selects cells, these can be accessed via the Selection range
property, such as

For Each cell In Selection
'do stuff on cell
Next cell

--

HTH

RP
(remove nothere from the email address if mailing direct)


"someguy" wrote in message
7.142...
Hi,

I'm trying to write a macro that can refer to certain cells that the
user has selected. Basically i want the user to be able to select certain
cells and call this macro. The macro then look at each cell and if there
is a value in the cell it add quotation marks to the value. How do I

refer
to the range the user selected from my function/sub?

TIA





Bob Phillips[_6_]

refer to user selection
 
Neal,

When you have a multi-cell selection, just get the first cell, like

row = Selection.Cells(1,1).Row

col = Selection.Cells(1,1).Column

--

HTH

RP
(remove nothere from the email address if mailing direct)


"Neal Zimm" wrote in message
...
Hi Bob -
I've got a roughly similar problem. In my application I'm building some
macros for customized cut and paste functions. (I'm NOT interested in the
value in the cells)

if the user selects one cell, (the active cell) l've been able to use;
row=activecell.row and col=activecell.column
in order to build statements like:
range(cells(row,col),cells(row+var1,col+var2).sele ct

My problem is that I've not been able to figure out from the Excel docum

in
range properties how to get the row and column "coordinates" when the user
has selected part of a column, A1:A9 for example, or more importantly,
a "traditional" range like B2:E9

how do I get the upper left and lower right row and column numbers for

the
cells that 'define' a user selected range?

Many thanks,
Neal Zimm




"Bob Phillips" wrote:

When the user selects cells, these can be accessed via the Selection

range
property, such as

For Each cell In Selection
'do stuff on cell
Next cell

--

HTH

RP
(remove nothere from the email address if mailing direct)


"someguy" wrote in message
7.142...
Hi,

I'm trying to write a macro that can refer to certain cells that

the
user has selected. Basically i want the user to be able to select

certain
cells and call this macro. The macro then look at each cell and if

there
is a value in the cell it add quotation marks to the value. How do I

refer
to the range the user selected from my function/sub?

TIA







Neal Zimm

refer to user selection
 
Thanks, much, and I HATE being a pest like this, but what about the cell in
the lower right? I need to know the 'size' of the selected range. Since I
wrote you this morning, I tried the loop you mentioned to 'someguy' and was
able to make each cell the activecell and use the max function to trap the
highest row and column values but I'm hopeful there's a better way. I'll
see what Excel has on the keyword 'selection' in the interim.
Thanks in advance, again,
Neal Z


"Bob Phillips" wrote:

Neal,

When you have a multi-cell selection, just get the first cell, like

row = Selection.Cells(1,1).Row

col = Selection.Cells(1,1).Column

--



Bob Phillips[_6_]

refer to user selection
 
You could try

With Selection
row = .Cells(1,1).Row + .Rows.Count - 1
col = .Cells(1,1).Column + .Columns.Count - 1
End With

--

HTH

RP
(remove nothere from the email address if mailing direct)


"Neal Zimm" wrote in message
...
Thanks, much, and I HATE being a pest like this, but what about the cell

in
the lower right? I need to know the 'size' of the selected range. Since

I
wrote you this morning, I tried the loop you mentioned to 'someguy' and

was
able to make each cell the activecell and use the max function to trap the
highest row and column values but I'm hopeful there's a better way. I'll
see what Excel has on the keyword 'selection' in the interim.
Thanks in advance, again,
Neal Z


"Bob Phillips" wrote:

Neal,

When you have a multi-cell selection, just get the first cell, like

row = Selection.Cells(1,1).Row

col = Selection.Cells(1,1).Column

--





Steve[_74_]

refer to user selection
 
I missed the first part of the thread but, does this help:

Mid(Selection.Address, InStr(Selection.Address, ":") + 1,
Len(Selection.Address) - InStr(Selection.Address, ":"))

Steve


"Neal Zimm" wrote in message
...
Thanks, much, and I HATE being a pest like this, but what about the cell
in
the lower right? I need to know the 'size' of the selected range. Since
I
wrote you this morning, I tried the loop you mentioned to 'someguy' and
was
able to make each cell the activecell and use the max function to trap the
highest row and column values but I'm hopeful there's a better way. I'll
see what Excel has on the keyword 'selection' in the interim.
Thanks in advance, again,
Neal Z


"Bob Phillips" wrote:

Neal,

When you have a multi-cell selection, just get the first cell, like

row = Selection.Cells(1,1).Row

col = Selection.Cells(1,1).Column

--





Neal Zimm

refer to user selection
 
Thanks so much for the speedy reply, I'll try this out as soon as I finish
this reply.
I'm sure you know this, but I wrote the following 'on a lark'

Dim text As String
text = Selection.Address
MsgBox text

and it yielded: $D$5:$I$9

the thought of writing or stealing a routine to parse the answer was not
thrilling.
Again, Thanks.
Neal Z.





"Bob Phillips" wrote:

You could try

With Selection
row = .Cells(1,1).Row + .Rows.Count - 1
col = .Cells(1,1).Column + .Columns.Count - 1
End With

--

HTH

RP
(remove nothere from the email address if mailing direct)


"Neal Zimm" wrote in message
...
Thanks, much, and I HATE being a pest like this, but what about the cell

in
the lower right? I need to know the 'size' of the selected range. Since

I
wrote you this morning, I tried the loop you mentioned to 'someguy' and

was
able to make each cell the activecell and use the max function to trap the
highest row and column values but I'm hopeful there's a better way. I'll
see what Excel has on the keyword 'selection' in the interim.
Thanks in advance, again,
Neal Z


"Bob Phillips" wrote:

Neal,

When you have a multi-cell selection, just get the first cell, like

row = Selection.Cells(1,1).Row

col = Selection.Cells(1,1).Column

--






Tom Ogilvy

refer to user selection
 
for a single rectangular contiguous range:

msgbox seletion(selection.count).Address

--
Regards,
Tom Ogilvy

"Neal Zimm" wrote in message
...
Thanks so much for the speedy reply, I'll try this out as soon as I finish
this reply.
I'm sure you know this, but I wrote the following 'on a lark'

Dim text As String
text = Selection.Address
MsgBox text

and it yielded: $D$5:$I$9

the thought of writing or stealing a routine to parse the answer was not
thrilling.
Again, Thanks.
Neal Z.





"Bob Phillips" wrote:

You could try

With Selection
row = .Cells(1,1).Row + .Rows.Count - 1
col = .Cells(1,1).Column + .Columns.Count - 1
End With

--

HTH

RP
(remove nothere from the email address if mailing direct)


"Neal Zimm" wrote in message
...
Thanks, much, and I HATE being a pest like this, but what about the

cell
in
the lower right? I need to know the 'size' of the selected range.

Since
I
wrote you this morning, I tried the loop you mentioned to 'someguy'

and
was
able to make each cell the activecell and use the max function to trap

the
highest row and column values but I'm hopeful there's a better way.

I'll
see what Excel has on the keyword 'selection' in the interim.
Thanks in advance, again,
Neal Z


"Bob Phillips" wrote:

Neal,

When you have a multi-cell selection, just get the first cell, like

row = Selection.Cells(1,1).Row

col = Selection.Cells(1,1).Column

--







Tom Ogilvy

refer to user selection
 
selection(selection.count).row
selection(selection.count).column

--
Regards,
Tom Ogilvy

"Neal Zimm" wrote in message
...
Thanks so much for the speedy reply, I'll try this out as soon as I finish
this reply.
I'm sure you know this, but I wrote the following 'on a lark'

Dim text As String
text = Selection.Address
MsgBox text

and it yielded: $D$5:$I$9

the thought of writing or stealing a routine to parse the answer was not
thrilling.
Again, Thanks.
Neal Z.





"Bob Phillips" wrote:

You could try

With Selection
row = .Cells(1,1).Row + .Rows.Count - 1
col = .Cells(1,1).Column + .Columns.Count - 1
End With

--

HTH

RP
(remove nothere from the email address if mailing direct)


"Neal Zimm" wrote in message
...
Thanks, much, and I HATE being a pest like this, but what about the

cell
in
the lower right? I need to know the 'size' of the selected range.

Since
I
wrote you this morning, I tried the loop you mentioned to 'someguy'

and
was
able to make each cell the activecell and use the max function to trap

the
highest row and column values but I'm hopeful there's a better way.

I'll
see what Excel has on the keyword 'selection' in the interim.
Thanks in advance, again,
Neal Z


"Bob Phillips" wrote:

Neal,

When you have a multi-cell selection, just get the first cell, like

row = Selection.Cells(1,1).Row

col = Selection.Cells(1,1).Column

--








All times are GMT +1. The time now is 07:17 AM.

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