Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
help with code!
I cannot get my code to work! i am trying to just check
that when the user enters a value in cell Y13 that its a 9 digit numeric value but every time i enter a value. it always goes to the last condition "Must be 9 digits" even when i enter in a correct value what's wrong here?! help! :) Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo ws_exit: Application.EnableEvents = False If Not Intersect(Target, Me.Range("Y13")) Is Nothing Then With Target 'do something If Len(Y13) = 9 Then If IsNumeric(Y13) Then Y13.NumberFormat = "###-###-###" Else MsgBox "Must be a number" End If Else MsgBox "Must be 9 digits" End If End With End If ws_exit: Application.EnableEvents = True End Sub |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
help with code!
Instead of nesting your if statements, try do it sequentially. Example: Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo ws_exit: Application.EnableEvents = False If Not Intersect(Target, Me.Range("Y13")) Is Nothing Then With Target 'do something If Len(Y13) < 9 Then MsgBox "Must be 9 digits" Exit Sub End If If IsNumeric(Y13) Then Y13.NumberFormat = "###-###-###" Else MsgBox "Must be a number" End If End With End If ws_exit: Application.EnableEvents = True End Sub Not sure if that will do it, but logically it will still flow through the proper validation steps. -----Original Message----- I cannot get my code to work! i am trying to just check that when the user enters a value in cell Y13 that its a 9 digit numeric value but every time i enter a value. it always goes to the last condition "Must be 9 digits" even when i enter in a correct value what's wrong here?! help! :) Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo ws_exit: Application.EnableEvents = False If Not Intersect(Target, Me.Range("Y13")) Is Nothing Then With Target 'do something If Len(Y13) = 9 Then If IsNumeric(Y13) Then Y13.NumberFormat = "###-###-###" Else MsgBox "Must be a number" End If Else MsgBox "Must be 9 digits" End If End With End If ws_exit: Application.EnableEvents = True End Sub . |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
help with code!
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Y13 as Range On Error GoTo ws_exit: Application.EnableEvents = False If Not Intersect(Target, Me.Range("Y13")) Is Nothing Then set Y13 = Target 'do something If Len(Y13) = 9 Then If IsNumeric(Y13) Then Y13.NumberFormat = "###-###-###" Else MsgBox "Must be a number" End If Else MsgBox "Must be 9 digits" End If End If ws_exit: Application.EnableEvents = True End Sub -- Regards, Tom Ogilvy wrote in message ... I cannot get my code to work! i am trying to just check that when the user enters a value in cell Y13 that its a 9 digit numeric value but every time i enter a value. it always goes to the last condition "Must be 9 digits" even when i enter in a correct value what's wrong here?! help! :) Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo ws_exit: Application.EnableEvents = False If Not Intersect(Target, Me.Range("Y13")) Is Nothing Then With Target 'do something If Len(Y13) = 9 Then If IsNumeric(Y13) Then Y13.NumberFormat = "###-###-###" Else MsgBox "Must be a number" End If Else MsgBox "Must be 9 digits" End If End With End If ws_exit: Application.EnableEvents = True End Sub |
#5
Posted to microsoft.public.excel.programming
|
|||
|
|||
help with code!
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Y13 as Range On Error GoTo ws_exit: Application.EnableEvents = False If Not Intersect(Target, Me.Range("Y13")) Is Nothing Then Set Y13 = Target 'do something If Len(Y13) < 9 Then MsgBox "Must be 9 digits" Exit Sub End If If IsNumeric(Y13) Then Y13.NumberFormat = "###-###-###" Else MsgBox "Must be a number" End If End If ws_exit: Application.EnableEvents = True End Sub -- Regards, Tom Ogilvy "Kevin" wrote in message ... Instead of nesting your if statements, try do it sequentially. Example: Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo ws_exit: Application.EnableEvents = False If Not Intersect(Target, Me.Range("Y13")) Is Nothing Then With Target 'do something If Len(Y13) < 9 Then MsgBox "Must be 9 digits" Exit Sub End If If IsNumeric(Y13) Then Y13.NumberFormat = "###-###-###" Else MsgBox "Must be a number" End If End With End If ws_exit: Application.EnableEvents = True End Sub Not sure if that will do it, but logically it will still flow through the proper validation steps. -----Original Message----- I cannot get my code to work! i am trying to just check that when the user enters a value in cell Y13 that its a 9 digit numeric value but every time i enter a value. it always goes to the last condition "Must be 9 digits" even when i enter in a correct value what's wrong here?! help! :) Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo ws_exit: Application.EnableEvents = False If Not Intersect(Target, Me.Range("Y13")) Is Nothing Then With Target 'do something If Len(Y13) = 9 Then If IsNumeric(Y13) Then Y13.NumberFormat = "###-###-###" Else MsgBox "Must be a number" End If Else MsgBox "Must be 9 digits" End If End With End If ws_exit: Application.EnableEvents = True End Sub . |
#6
Posted to microsoft.public.excel.programming
|
|||
|
|||
help with code!
"Error" isn't very informative. If that is sufficient, then good
suggestion. -- Regards, Tom Ogilvy "Don Guillett" wrote in message ... Your first if is doing just that. Why not simplify it with something like. if target.address< "$Y$13" then exit sub if Len(target) = 9 and IsNumeric(target) Then target.NumberFormat = "###-###-###" Else MsgBox "Error" End If -- Don Guillett SalesAid Software wrote in message ... I cannot get my code to work! i am trying to just check that when the user enters a value in cell Y13 that its a 9 digit numeric value but every time i enter a value. it always goes to the last condition "Must be 9 digits" even when i enter in a correct value what's wrong here?! help! :) Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo ws_exit: Application.EnableEvents = False If Not Intersect(Target, Me.Range("Y13")) Is Nothing Then With Target 'do something If Len(Y13) = 9 Then If IsNumeric(Y13) Then Y13.NumberFormat = "###-###-###" Else MsgBox "Must be a number" End If Else MsgBox "Must be 9 digits" End If End With End If ws_exit: Application.EnableEvents = True End Sub |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
split post code (zip code) out of cell that includes full address | Excel Discussion (Misc queries) | |||
Code to conditional format all black after date specified in code? | Excel Discussion (Misc queries) | |||
Drop Down/List w/Code and Definition, only code entered when selec | Excel Worksheet Functions | |||
option buttons run Click code when value is changed via VBA code | Excel Programming | |||
VBA code delete code but ask for password and unlock VBA protection | Excel Programming |