PC Review


Reply
Thread Tools Rate Thread

How does this code know which sheet to act upon?

 
 
dan dungan
Guest
Posts: n/a
 
      1st Oct 2008
Hi,

In a module, modReset, I have the following code. It works on the
proper worksheet, QuotedPart, but I don't understand how it knows
which sheet to act upon.

I want to clear some cells--E2, G2, I2, K2, Q2, R2, S2 & T2--in a
different worksheet, 217, and I'm not clear how to append this code
to accommodate that process.

I certainly appreciate any recommendations.

Thanks,

Dan
 
Reply With Quote
 
 
 
 
FSt1
Guest
Posts: n/a
 
      1st Oct 2008
hi
unless otherwise specified, vb assumes the code is for the active sheet.

post your code and we might be able to tell you more.

Regards
FSt1

"dan dungan" wrote:

> Hi,
>
> In a module, modReset, I have the following code. It works on the
> proper worksheet, QuotedPart, but I don't understand how it knows
> which sheet to act upon.
>
> I want to clear some cells--E2, G2, I2, K2, Q2, R2, S2 & T2--in a
> different worksheet, 217, and I'm not clear how to append this code
> to accommodate that process.
>
> I certainly appreciate any recommendations.
>
> Thanks,
>
> Dan
>

 
Reply With Quote
 
dan dungan
Guest
Posts: n/a
 
      1st Oct 2008
Woops,

I guess I hit send before I was finished.

Sub Clear_Unlocked2()
'Called by cmdReset-clears the unlocked cells
'in range A1:N100 including merged cells

Dim myCell As Range
Application.EnableEvents = False
For Each myCell In Range("A1:N100")
If myCell.Address = "$I$4" Then
'skip it

'ElseIf myCell.Address = "$D$4" Then
'skip it
ElseIf myCell.Locked = False Then
If myCell.MergeCells Then
If myCell.Address = myCell.MergeArea(1).Address Then
myCell.MergeArea.ClearContents
End If
Else
myCell.ClearContents
End If
End If
Next myCell
Range("A6").Select
Selection.End(xlUp).Select
Range("A2:C2").Select
Application.EnableEvents = True
End Sub
 
Reply With Quote
 
dan dungan
Guest
Posts: n/a
 
      2nd Oct 2008
I used the following approach which seems to be working.
Private Sub cmdNextPartNum_Click()
'Clears the unlocked cells in Sheets "217" and "A&E,
'range A2:AB2,including merged cells to prepare for next quote
Dim myCell As Range
Application.EnableEvents = False

With Sheets("217")
For Each myCell In Worksheets("217").Range("A2:AB2")
If myCell.Locked = False Then
myCell.ClearContents
End If
Next myCell
End With


With Sheets("A&E")
For Each myCell In Worksheets("A&E").Range("A2:AB2")
If myCell.Locked = False Then
myCell.ClearContents
End If
Next myCell
End With

Worksheets("QuotedPart").Activate
Selection.End(xlUp).Select
CmdNextPartNum.Visible = False
cmdGetPrice.Visible = True
Range("A2:C2").Select
Range("A2:C2").ClearContents

Application.EnableEvents = True
End Sub

 
Reply With Quote
 
Dave Peterson
Guest
Posts: n/a
 
      3rd Oct 2008
If you're going to use the with/end with structure, then you don't want this:

With Sheets("217")
For Each myCell In Worksheets("217").Range("A2:AB2")
If myCell.Locked = False Then
myCell.ClearContents
End If
Next myCell
End With

You'd want:

With Sheets("217")
For Each myCell In .Range("A2:AB2")
If myCell.Locked = False Then
myCell.ClearContents
End If
Next myCell
End With

Notice the dot in front of the .range("A2:AB2"). This means that this belongs
to the object in the previous With statement (sheets("217") in your example).

You could have skipped the with/end with, too and used:

For Each myCell In Worksheets("217").Range("A2:AB2")
If myCell.Locked = False Then
myCell.ClearContents
End If
Next myCell

You've got that range("A2:AB2") qualified with the preceding Worksheets("217").

ps. If you have problems with those merged cells, you may want to change:

mycell.clearcontents
to
mycell.value = ""




dan dungan wrote:
>
> I used the following approach which seems to be working.
> Private Sub cmdNextPartNum_Click()
> 'Clears the unlocked cells in Sheets "217" and "A&E,
> 'range A2:AB2,including merged cells to prepare for next quote
> Dim myCell As Range
> Application.EnableEvents = False
>
> With Sheets("217")
> For Each myCell In Worksheets("217").Range("A2:AB2")
> If myCell.Locked = False Then
> myCell.ClearContents
> End If
> Next myCell
> End With
>
> With Sheets("A&E")
> For Each myCell In Worksheets("A&E").Range("A2:AB2")
> If myCell.Locked = False Then
> myCell.ClearContents
> End If
> Next myCell
> End With
>
> Worksheets("QuotedPart").Activate
> Selection.End(xlUp).Select
> CmdNextPartNum.Visible = False
> cmdGetPrice.Visible = True
> Range("A2:C2").Select
> Range("A2:C2").ClearContents
>
> Application.EnableEvents = True
> End Sub


--

Dave Peterson
 
Reply With Quote
 
dan dungan
Guest
Posts: n/a
 
      3rd Oct 2008
Thanks for your feedback, Dave. I updated the macro with that change.

Dan
 
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
Use VBA to create new sheet with event handlers in sheet's code VBAer Microsoft Excel Programming 2 24th Nov 2009 07:22 AM
Help to code Macro to Copy fron one sheet and paste in other sheet kay Microsoft Excel Programming 3 25th Jul 2008 06:46 PM
Programmatically determining CODE NAME for sheet based upon Sheet =?Utf-8?B?QmFyYiBSZWluaGFyZHQ=?= Microsoft Excel Programming 14 15th Aug 2006 06:49 PM
excel - macro code to open a protected sheet, enter passowrd, and then protect sheet arunjoshi Microsoft Excel Programming 1 2nd May 2004 03:50 PM
unprotect sheet in code and make sheet visible peach255 Microsoft Excel Programming 1 1st Aug 2003 03:28 AM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 11:54 PM.