PC Review


Reply
Thread Tools Rate Thread

Changing tab color locks the worksheet

 
 
Phyllis
Guest
Posts: n/a
 
      14th Mar 2010
Below is the code where I am successfully changing the worksheet tab color
under a certain conditon. However, after the tab is changed, I cannot
navigate away from that spreadsheet to another one. It is as if it is
locked. I watched the code as it ran and it ran thru "end sub". I am using
VBA 6.5 and excel 2003. Any ideas?

Private Sub Worksheet_Deactivate()
Debug.Print "order deactivate"
Dim orderWS As Worksheet
Dim tabRg As Range
Set orderWS = ThisWorkbook.Worksheets(activesheet)
Set tabRg = orderWS.Range("F40")

' check if carrier has been assigned and then change color tab if it has

Debug.Print tabRg.Value
'If tabRg.Value > " " Then
'Sheets(activesheet).Select
' ActiveWorkbook.Sheets(activesheet).Tab.ColorIndex = 35
'End If


ErrorProcess:
If Err.Number <> 0 Then
MsgBox Err.Description & " In worksheet-deactivate", vbCritical, "Error
# " & Err.Number
End If


End Sub
 
Reply With Quote
 
 
 
 
Dave Peterson
Guest
Posts: n/a
 
      14th Mar 2010
So you just want to use the color of the tab as a flag--green is ok (and maybe
red for bad)?

If that's ok, then maybe...

Option Explicit
Private Sub Worksheet_Deactivate()

Dim tabRg As Range

'Me is the object owning the code--in this case, the Order Worksheet
Set tabRg = Me.Range("F40")

If Trim(tabRg.Value) = "" Then
'it's empty, leave the tab color alone???
'or change it to red (for me)?
Me.Tab.ColorIndex = 3
Else
Me.Tab.ColorIndex = 35
End If

End Sub

Phyllis wrote:
>
> Below is the code where I am successfully changing the worksheet tab color
> under a certain conditon. However, after the tab is changed, I cannot
> navigate away from that spreadsheet to another one. It is as if it is
> locked. I watched the code as it ran and it ran thru "end sub". I am using
> VBA 6.5 and excel 2003. Any ideas?
>
> Private Sub Worksheet_Deactivate()
> Debug.Print "order deactivate"
> Dim orderWS As Worksheet
> Dim tabRg As Range
> Set orderWS = ThisWorkbook.Worksheets(activesheet)
> Set tabRg = orderWS.Range("F40")
>
> ' check if carrier has been assigned and then change color tab if it has
>
> Debug.Print tabRg.Value
> 'If tabRg.Value > " " Then
> 'Sheets(activesheet).Select
> ' ActiveWorkbook.Sheets(activesheet).Tab.ColorIndex = 35
> 'End If
>
> ErrorProcess:
> If Err.Number <> 0 Then
> MsgBox Err.Description & " In worksheet-deactivate", vbCritical, "Error
> # " & Err.Number
> End If
>
>
> End Sub


--

Dave Peterson
 
Reply With Quote
 
Phyllis
Guest
Posts: n/a
 
      14th Mar 2010
Hi Dave,
Thanks for your response. I am able to successfully change the tab color
with the code I provided. The problem is that after the code changes the
tab, I am not able to select another worksheet. I am locked onto the
worksheet that I changed the tab color on. Why???

"Dave Peterson" wrote:

> So you just want to use the color of the tab as a flag--green is ok (and maybe
> red for bad)?
>
> If that's ok, then maybe...
>
> Option Explicit
> Private Sub Worksheet_Deactivate()
>
> Dim tabRg As Range
>
> 'Me is the object owning the code--in this case, the Order Worksheet
> Set tabRg = Me.Range("F40")
>
> If Trim(tabRg.Value) = "" Then
> 'it's empty, leave the tab color alone???
> 'or change it to red (for me)?
> Me.Tab.ColorIndex = 3
> Else
> Me.Tab.ColorIndex = 35
> End If
>
> End Sub
>
> Phyllis wrote:
> >
> > Below is the code where I am successfully changing the worksheet tab color
> > under a certain conditon. However, after the tab is changed, I cannot
> > navigate away from that spreadsheet to another one. It is as if it is
> > locked. I watched the code as it ran and it ran thru "end sub". I am using
> > VBA 6.5 and excel 2003. Any ideas?
> >
> > Private Sub Worksheet_Deactivate()
> > Debug.Print "order deactivate"
> > Dim orderWS As Worksheet
> > Dim tabRg As Range
> > Set orderWS = ThisWorkbook.Worksheets(activesheet)
> > Set tabRg = orderWS.Range("F40")
> >
> > ' check if carrier has been assigned and then change color tab if it has
> >
> > Debug.Print tabRg.Value
> > 'If tabRg.Value > " " Then
> > 'Sheets(activesheet).Select
> > ' ActiveWorkbook.Sheets(activesheet).Tab.ColorIndex = 35
> > 'End If
> >
> > ErrorProcess:
> > If Err.Number <> 0 Then
> > MsgBox Err.Description & " In worksheet-deactivate", vbCritical, "Error
> > # " & Err.Number
> > End If
> >
> >
> > End Sub

>
> --
>
> Dave Peterson
> .
>

 
Reply With Quote
 
Dave Peterson
Guest
Posts: n/a
 
      14th Mar 2010
I don't know.

The code you posted blew up on me at this line:

Set orderWS = ThisWorkbook.Worksheets(ActiveSheet)

So I wasn't able to test it.

Phyllis wrote:
>
> Hi Dave,
> Thanks for your response. I am able to successfully change the tab color
> with the code I provided. The problem is that after the code changes the
> tab, I am not able to select another worksheet. I am locked onto the
> worksheet that I changed the tab color on. Why???
>
> "Dave Peterson" wrote:
>
> > So you just want to use the color of the tab as a flag--green is ok (and maybe
> > red for bad)?
> >
> > If that's ok, then maybe...
> >
> > Option Explicit
> > Private Sub Worksheet_Deactivate()
> >
> > Dim tabRg As Range
> >
> > 'Me is the object owning the code--in this case, the Order Worksheet
> > Set tabRg = Me.Range("F40")
> >
> > If Trim(tabRg.Value) = "" Then
> > 'it's empty, leave the tab color alone???
> > 'or change it to red (for me)?
> > Me.Tab.ColorIndex = 3
> > Else
> > Me.Tab.ColorIndex = 35
> > End If
> >
> > End Sub
> >
> > Phyllis wrote:
> > >
> > > Below is the code where I am successfully changing the worksheet tab color
> > > under a certain conditon. However, after the tab is changed, I cannot
> > > navigate away from that spreadsheet to another one. It is as if it is
> > > locked. I watched the code as it ran and it ran thru "end sub". I am using
> > > VBA 6.5 and excel 2003. Any ideas?
> > >
> > > Private Sub Worksheet_Deactivate()
> > > Debug.Print "order deactivate"
> > > Dim orderWS As Worksheet
> > > Dim tabRg As Range
> > > Set orderWS = ThisWorkbook.Worksheets(activesheet)
> > > Set tabRg = orderWS.Range("F40")
> > >
> > > ' check if carrier has been assigned and then change color tab if it has
> > >
> > > Debug.Print tabRg.Value
> > > 'If tabRg.Value > " " Then
> > > 'Sheets(activesheet).Select
> > > ' ActiveWorkbook.Sheets(activesheet).Tab.ColorIndex = 35
> > > 'End If
> > >
> > > ErrorProcess:
> > > If Err.Number <> 0 Then
> > > MsgBox Err.Description & " In worksheet-deactivate", vbCritical, "Error
> > > # " & Err.Number
> > > End If
> > >
> > >
> > > End Sub

> >
> > --
> >
> > Dave Peterson
> > .
> >


--

Dave Peterson
 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Changing Cell Color based upon value on another worksheet DPelletier Microsoft Excel Programming 2 5th Nov 2009 10:24 PM
Changing the Worksheet ScrollBars Color ! =?Utf-8?B?UkFGQUFKMjAwMA==?= Microsoft Excel Programming 1 7th Jun 2005 01:54 PM
Changing Color of Worksheet Tab Don Microsoft Excel Discussion 5 7th Mar 2004 01:20 PM
Changing Color of Worksheet Tab Don Microsoft Excel Worksheet Functions 5 7th Mar 2004 01:20 PM
Changing Color of Worksheet Tab Don Microsoft Excel Misc 6 7th Mar 2004 01:20 PM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 12:48 AM.