View Single Post
  #7   Report Post  
Posted to microsoft.public.excel.programming
zSplash zSplash is offline
external usenet poster
 
Posts: 28
Default Using Target.Row in other Sheets

Thank you, Tom.

st.

"Tom Ogilvy" wrote in message
...
Sounds like events have been disabled, however, I re-enable events in the
error handler. Note that I do not jump out of the sub before getting to

the
error handler. If you added code such as

Exit Sub '<== added code? -- no no
ErrHandler
Application.ScreenUpdating =True
Application.EnableEvents = True
End sub

as one would normally do with an error handler, then this is incorrect. I
intentionally fall through the error handler on every execution of the

code
so events are always enabled:

On Error goto ErrHandler
Dim sh as Worksheet
Dim sAddr as String
if Target.Count 1 then exit sub
If Target.Column = 1 And Target.Value < "" Then
sAddr = target.Address
Application.ScreenUpdating = False
Application.EnableEvents = False
for each sh in worksheets(Array("sheet2","Sheet3","Sheet4","Sheet 5"))
sh.Activate
sh.Range(sAddr).Select
Next
me.activate

End if
ErrHandler
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub


Other than that, I can't say why events are not being enabled. However,
since I would see this as sheet level code, I don't think you really need

to
disable events, so you could comment out that line:

On Error goto ErrHandler
Dim sh as Worksheet
Dim sAddr as String
if Target.Count 1 then exit sub
If Target.Column = 1 And Target.Value < "" Then
sAddr = target.Address
Application.ScreenUpdating = False
'Application.EnableEvents = False ' <= comment out
for each sh in worksheets(Array("sheet2","Sheet3","Sheet4","Sheet 5"))
sh.Activate
sh.Range(sAddr).Select
Next
me.activate

End if
ErrHandler
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub


If you have duplicated this code on multiple sheets, then you need to
disable events or you will get into a recursive situation.

--
Regards,
Tom Ogilvy



"zSplash" <zNOSPAMSplash@ gci.net wrote in message
...
So, Tom, your code works wonderfully. Once. After that, none of the
worksheet_change event codes work. If I close the workbook, and re-open

it,
they again work. What do you think?

st.

"zSplash" <zNOSPAMSplash@ gci.net wrote in message
...
Outstanding, Tom! Thanks so much.

st.

"Tom Ogilvy" wrote in message
...

You can only select on the activesheet.

On Error goto ErrHandler
Dim sh as Worksheet
Dim sAddr as String
if Target.Count 1 then exit sub
If Target.Column = 1 And Target.Value < "" Then
sAddr = target.Address
Application.ScreenUpdating = False
Application.EnableEvents = False
for each sh in

worksheets(Array("sheet2","Sheet3","Sheet4","Sheet 5"))
sh.Activate
sh.Range(sAddr).Select
Next
me.activate

End if
ErrHandler
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub

--
Regards,
Tom Ogilvy




"zSplash" <zNOSPAMSplash@ gci.net wrote in message
...
I am trying to select cells in several sheets, if the user is in

Sheet1
and
selects a cell in column A. I get a '1004' error ("Select method

of
Range
class failed") at Range("A" & Target.Row).Select. Can somebody

help
me?
Here is my code:

... If Target.Cells.Count = 1 Then
1: ' if they select a cell in Col 1, select complementary

cell
in
other
sheets
If Target.Column = 1 And Target.Value < "" Then
Sheets(3).Select
Range("A" & Target.Row).Select
Sheets(4).Range("A" & Target.Row).Sheets(5).Select
Sheets(1).Select
EndIf
EndIf
...

TIA