Hi Jack,
Does cell B3 contain a formula or are you entering a value directly? The Worksheet_Change event is triggered by changes that result from direct entry. The Worksheet_Calculate event is triggered by worksheet calculation. If there is a formula in B3, it will never be the "Target" in a Worksheet_Change event, although any time it's resultant value changes (and even more often than that, most likely), you would get a Worksheet_Calculate event. Also, in your original post, the Worksheet_Change event you posted had a couple of potential problems that I noticed: (1) The subroutine declaration was commented out with a single apostrophe. The event would be disabled like that, and the VBA code without a Sub or Function declaration, and especially with an End Sub at the end, would most likely confuse VBA. (2) You have the statement: If Target.Address = "B3" Then .... Since more than one cell can change at one time (copy/paste, fill, ?), the Address property will refer to all of the changed cells. Also, The .Address property will never = "B3". It could = "$B$3" though. The usual way of checking if a particular cell was changed in the Worksheet_Change event is to see if the cell intersects with Target: If Not Application.Intersect(Range("B3"), Target) Is Nothing Then .... (3) You have the statement: Select Case Target.Value Case Is = "DSL-Cleaner" .... If Target is a range of more than one cell, comparing Target.Value to a string will result in a type mismatch error, since Target.Value will be an array of values in that case. Admittedly this is inside your If Target.Address="B3" block, which if you changed to ="$B$3" would run your code if ONLY cell B3 was changed, and with only one cell changed, and your Select statement inside that If block it will never execute under other circumstances, and you would avoid an error. I recommend the Intersect method though. In which case, you might get a type mismatch, and also you would be checking the value of who knows what other cells you aren't interested in, too. You could use: Select Case Range("B3").Value .... Asa -----Original Message----- From: excel-macros@googlegroups.com [mailto:excel-macros@googlegroups.com] On Behalf Of Jack Sent: Thursday, November 10, 2011 12:12 PM To: MS EXCEL AND VBA MACROS Subject: Re: $$Excel-Macros$$ Calling multiple type subroutines I apologize for the lack of clarity. I blame it on being new to macros still, lol. The first routine is a: Private Sub Worksheet_Calculate() Dim oPic As Picture Me.Pictures.Visible = False With Range("B3") For Each oPic In Me.Pictures If oPic.Name = .Text Then oPic.Visible = True oPic.Top = .Top oPic.Left = .Left Exit For End If Next oPic End With End Sub I forgot to mention that I pulled this routine from a web example. The problem I'm having is that when whichever routine I put first, gets priority and it works. However the 2nd one does not. Putting the picture change routine first, it does change the pictures. However, the 2nd routine to hide rows does not work. I would just like to know how to get them both to work since they are independent routines being that they are 2 different types of sub routines Private Sub Worksheet_Calculate() Private Sub Worksheet_Change(ByVal Target As Range) I'm not sure how to work it to where both work simultaneously. Jack On Nov 10, 11:28 am, Sam Mathai Chacko <samde...@gmail.com> wrote: > The Worksheet change routine is automatically triggered when there is a > change (change in value/modification of value etc) in 1 or more cells > within THAT sheet. So you don't really CALL it, it GETS called, in other > words, TRIGGERED. > > For the first routine, the context is not clear enough to judge when and > how it has to be called, so a bit more clarity may help > > Regards, > Sam > > > > > > > > > > On Thu, Nov 10, 2011 at 8:53 PM, Jack <aan...@gmail.com> wrote: > > I am new to macros. I tried searching the internet for the answer but > > the limited experience didn't quite help me find my answer. I hope you > > guys can figure it out. > > > I have 2 sub routines. 1 that pulls a photo and another that hides > > rows based on a value from cell B3. I tried to the Call option but > > wasn't quite sure how to pull it together. Below are my 2 routines: > > > Dim oPic As Picture > > Me.Pictures.Visible = False > > With Range("B3") > > For Each oPic In Me.Pictures > > If oPic.Name = .Text Then > > oPic.Visible = True > > oPic.Top = .Top > > oPic.Left = .Left > > Exit For > > End If > > Next oPic > > End With > > End Sub > > > ---------------------------------------------------------------------------- -- > > 'Private Sub Worksheet_Change(ByVal Target As Range) > > > If Target.Address = "B3" Then > > Select Case Target.Value > > Case Is = "DSL-Cleaner" > > Rows("1:156").Hidden = False > > Rows("157:208").Hidden = True > > Rows("209:256").Hidden = False > > Case Is = "DSN-DSL Cleaner" > > Rows("1:256").Hidden = False > > End Select > > End If > > End Sub > > > I greatly appreciate the help. > > > -- > > FORUM RULES (934+ members already BANNED for violation) > > > 1) Use concise, accurate thread titles. Poor thread titles, like Please > > Help, Urgent, Need Help, Formula Problem, Code Problem, and Need Advice > > will not get quick attention or may not be answered. > > > 2) Don't post a question in the thread of another member. > > > 3) Don't post questions regarding breaking or bypassing any security > > measure. > > > 4) Acknowledge the responses you receive, good or bad. > > > 5) Cross-promotion of, or links to, forums competitive to this forum in > > signatures are prohibited. > > > NOTE : Don't ever post personal or confidential data in a workbook. Forum > > owners and members are not responsible for any loss. > > > ---------------------------------------------------------------------------- -------------------------- > > To post to this group, send email to excel-macros@googlegroups.com > > -- > Sam Mathai Chacko -- FORUM RULES (934+ members already BANNED for violation) 1) Use concise, accurate thread titles. Poor thread titles, like Please Help, Urgent, Need Help, Formula Problem, Code Problem, and Need Advice will not get quick attention or may not be answered. 2) Don't post a question in the thread of another member. 3) Don't post questions regarding breaking or bypassing any security measure. 4) Acknowledge the responses you receive, good or bad. 5) Cross-promotion of, or links to, forums competitive to this forum in signatures are prohibited. NOTE : Don't ever post personal or confidential data in a workbook. Forum owners and members are not responsible for any loss. ---------------------------------------------------------------------------- -------------------------- To post to this group, send email to excel-macros@googlegroups.com -- FORUM RULES (934+ members already BANNED for violation) 1) Use concise, accurate thread titles. Poor thread titles, like Please Help, Urgent, Need Help, Formula Problem, Code Problem, and Need Advice will not get quick attention or may not be answered. 2) Don't post a question in the thread of another member. 3) Don't post questions regarding breaking or bypassing any security measure. 4) Acknowledge the responses you receive, good or bad. 5) Cross-promotion of, or links to, forums competitive to this forum in signatures are prohibited. NOTE : Don't ever post personal or confidential data in a workbook. Forum owners and members are not responsible for any loss. ------------------------------------------------------------------------------------------------------ To post to this group, send email to excel-macros@googlegroups.com