Cell selection in a macro

G

GatheringShadow

This is a question that may or may not have been addressed, but I'v
been looking for answers for a while and can't find any. Frankly, it'
driving me crazy. So, here's the question.
I created separate macros to initialize values for three cells i
Excel. The reason I did this is because they each refer to cells i
relation to themselves, so one macro won't work. Now I am trying t
select a row (or the first cell in the row) to have one macro activat
all three. However, the macro only references the row I recorded th
macro on, not any other row I may select. I've tried four or fiv
different ways to edit the macro (both after recording it or simpl
starting cold). Nothing seems to work. Can anyone help me t
reference cells in a macro, based on the starting row or cell?

ex. Row 12 is selected. A12 should execute Macro1, B12 Macro2, an
C12 Macro3
OR
Cell A5 is selected. A5 is Macro1, B5 Macro2, and C5 Macro3

Either way is fine with me, either selecting the first of three cell
or the entire row. Thanks for any help you can give me.

New excel, old programmer...
 
S

Simon Lloyd

you could try:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Column = 1 And ActiveCell.Row <= 30 Then
Macro1
ElseIf ActiveCell.Column = 2 And ActiveCell.Row <= 30 Then
Macro2
ElseIf ActiveCell.Column = 3 And ActiveCell.Row <= 30 Then
Macro3

End If
End Sub

where macro1,2 or 3 is the name of the macro you call on you can chang
the Activecell.Row to be the last row in your data.

Hope this helps

Simo
 
M

Mike Fogleman

Put this in the code module for the worksheet (not a general module where
macros 1-3 are)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Range("A:A"), Target) Is Nothing Then
macro1
macro2
macro3
Else
Exit Sub
End If
End Sub

This should detect when any cell is selected in column A and run the macros
in succession.

Mike F
 

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