ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Why does this code not work across all designated sheets now ? (https://www.excelbanter.com/excel-programming/381714-why-does-code-not-work-across-all-designated-sheets-now.html)

Corey

Why does this code not work across all designated sheets now ?
 
The below code suppose to clear the values in the Range to = ""
But for some reason it works if i run the macro from an activeworksheet,
but it does NOT Clear the values in ALL shets(Minus the named 3 sheets).

I also had to add the (On error resume next) as i was getting a Cannot change part of a Merged Cell
error,
But with those ranges there Are NO Merged Cells????

Sub ClearTimeSheetValues()
Call Unprotect
On Error Resume Next
Dim myrange As Range
For Each sh In ThisWorkbook.Worksheets
If sh.Name < "Enter - Exit" And sh.Name < "Utilization Sheet" And sh.Name < "Leave Blank" Then
Set myrange = Range("C5:C16,F5:F16,I5:I16,L5:L16,O5:O16,R5:R16,U 5:U15")
With myrange
..Value = ""
Range("A1").Select
End With
End If
Next
Call protect
End Sub

Any ideas' to get this code working again ?

Corey....



Doug Glancy[_7_]

Why does this code not work across all designated sheets now ?
 
Corey,

Some of your range references are referring to the active worksheet (over
and over). You need to qualify the ranges you are referring to, for
example:

Set myrange = ws.Range("C5:C16,F5:F16,I5:I16,L5:L16,O5:O16,R5:R1 6,U5:U15")
and
ws.Range("A1").Select

I suspect that if you look at the active worksheet you'll find a merged cell
in one of the ranges referred to in your code, which would explain that
problem.

hth,

Doug

"Corey" wrote in message
...
The below code suppose to clear the values in the Range to = ""
But for some reason it works if i run the macro from an activeworksheet,
but it does NOT Clear the values in ALL shets(Minus the named 3 sheets).

I also had to add the (On error resume next) as i was getting a Cannot
change part of a Merged Cell
error,
But with those ranges there Are NO Merged Cells????

Sub ClearTimeSheetValues()
Call Unprotect
On Error Resume Next
Dim myrange As Range
For Each sh In ThisWorkbook.Worksheets
If sh.Name < "Enter - Exit" And sh.Name < "Utilization Sheet" And
sh.Name < "Leave Blank" Then
Set myrange = Range("C5:C16,F5:F16,I5:I16,L5:L16,O5:O16,R5:R16,U 5:U15")
With myrange
.Value = ""
Range("A1").Select
End With
End If
Next
Call protect
End Sub

Any ideas' to get this code working again ?

Corey....





NickHK

Why does this code not work across all designated sheets now ?
 
Unqualified objects (normally) refer to the Activesheet. hence:
Range("C5:C16,F5:F16,I5:I16,L5:L16,O5:O16,R5:R16,U 5:U15")
is always the same sheet. You need to include the reference to which sheet
the range is on. i.e.
sh.Range("C5:C16,F5:F16,I5:I16,L5:L16,O5:O16,R5:R1 6,U5:U15")

Also, what do you intend with this ?
Range("A1").Select

Do you mean ?
sh.Range("A1").Select

If so you will need to activate the sheet first, as you cannot .select on a
non-active sheet.

NickHK

"Corey" wrote in message
...
The below code suppose to clear the values in the Range to = ""
But for some reason it works if i run the macro from an activeworksheet,
but it does NOT Clear the values in ALL shets(Minus the named 3 sheets).

I also had to add the (On error resume next) as i was getting a Cannot

change part of a Merged Cell
error,
But with those ranges there Are NO Merged Cells????

Sub ClearTimeSheetValues()
Call Unprotect
On Error Resume Next
Dim myrange As Range
For Each sh In ThisWorkbook.Worksheets
If sh.Name < "Enter - Exit" And sh.Name < "Utilization Sheet" And

sh.Name < "Leave Blank" Then
Set myrange = Range("C5:C16,F5:F16,I5:I16,L5:L16,O5:O16,R5:R16,U 5:U15")
With myrange
.Value = ""
Range("A1").Select
End With
End If
Next
Call protect
End Sub

Any ideas' to get this code working again ?

Corey....





Corey

Why does this code not work across all designated sheets now ?
 
Thanks Nick.

I have a litle better understanding of why it was not working now.
All is good.

Cheers

"NickHK" wrote in message ...
Unqualified objects (normally) refer to the Activesheet. hence:
Range("C5:C16,F5:F16,I5:I16,L5:L16,O5:O16,R5:R16,U 5:U15")
is always the same sheet. You need to include the reference to which sheet
the range is on. i.e.
sh.Range("C5:C16,F5:F16,I5:I16,L5:L16,O5:O16,R5:R1 6,U5:U15")

Also, what do you intend with this ?
Range("A1").Select

Do you mean ?
sh.Range("A1").Select

If so you will need to activate the sheet first, as you cannot .select on a
non-active sheet.

NickHK

"Corey" wrote in message
...
The below code suppose to clear the values in the Range to = ""
But for some reason it works if i run the macro from an activeworksheet,
but it does NOT Clear the values in ALL shets(Minus the named 3 sheets).

I also had to add the (On error resume next) as i was getting a Cannot

change part of a Merged Cell
error,
But with those ranges there Are NO Merged Cells????

Sub ClearTimeSheetValues()
Call Unprotect
On Error Resume Next
Dim myrange As Range
For Each sh In ThisWorkbook.Worksheets
If sh.Name < "Enter - Exit" And sh.Name < "Utilization Sheet" And

sh.Name < "Leave Blank" Then
Set myrange = Range("C5:C16,F5:F16,I5:I16,L5:L16,O5:O16,R5:R16,U 5:U15")
With myrange
.Value = ""
Range("A1").Select
End With
End If
Next
Call protect
End Sub

Any ideas' to get this code working again ?

Corey....







All times are GMT +1. The time now is 10:34 AM.

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