Home |
Search |
Today's Posts |
#8
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Dave,
That's perfect - thanks again! "Dave Peterson" wrote in message ... You could look for the "type" string in the name: Option Explicit Public Sub test() Dim nmTest As Name Dim rTest As Range Dim sName As String For Each nmTest In ActiveWorkbook.Names With nmTest If LCase(nmTest.Name) Like "*type*" Then Set rTest = Nothing On Error Resume Next Set rTest = .RefersToRange On Error GoTo 0 If Not rTest Is Nothing Then If Not Intersect(rTest, ActiveCell) Is Nothing Then sName = LCase(Mid(.Name, 2)) Exit For End If End If End If End With Next nmTest If Not sName = vbNullString Then Select Case sName Case Is = "type1": Call SubA Case Is = "type2": Call SubB Case Else: 'Do nothing End Select End If End Sub Sub SubA() MsgBox "suba" End Sub Sub SubB() MsgBox "subb" End Sub Excel User wrote: Thanks, But the range name picked up is the 'Print Area' not the actual named range - strange? Any ideas? "JE McGimpsey" wrote in message ... ONe way: Public Sub test() Dim nmTest As Name Dim rTest As Range Dim sName As String For Each nmTest In ActiveWorkbook.Names With nmTest On Error Resume Next Set rTest = .RefersToRange On Error GoTo 0 If Not rTest Is Nothing Then If Not Intersect(rTest, ActiveCell) Is Nothing Then sName = LCase(Mid(.Name, 2)) Exit For End If End If End With Set rTest = Nothing Next nmTest If Not sName = vbNullString Then Select Case sName Case Is = "type1": Call SubA Case Is = "type2": Call SubB Case Else: 'Do nothing End Select End If End Sub In article , "Excel User" wrote: Dave, Just a quick question, I have changed the defined name so that type1 refers to =OSR!$BW$39,OSR!$CC$39,OSR!$CI$39,OSR!$CO$39,OSR!$ CU$39,OSR!$DA$39,OSR!$DG$39, OSR!$DM$39 but now the named range does not pickup, I think this must be because this is a range not a cell - any ideas, I can if need change this but its going to be time consuming to go through all 600 cells changing the names Thanks "Dave Peterson" wrote in message ... Option Explicit Sub testme() Dim myStr As String myStr = "" On Error Resume Next myStr = ActiveCell.Name.Name On Error GoTo 0 If LCase(myStr) Like LCase("?type*") Then Select Case LCase(Mid(myStr, 2)) Case Is = "type1": Call SubA Case Is = "type2": Call SubB End Select End If End Sub Sub SubA() MsgBox "suba" End Sub Sub SubB() MsgBox "subb" End Sub -- Dave Peterson |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Application-Defined or object defined error 1004 When ran on exel97 but not 2003 | Excel Programming | |||
Copying A Range of Cells From one Sheet to Another - Error Application Defined or Object Defined | Excel Programming | |||
Runtime error 1004- application defined or object defined erro | Excel Programming | |||
Runtime error 1004- application defined or object defined erro | Excel Programming | |||
Runtime error 1004- application defined or object defined erro | Excel Programming |