Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Setfocus Problem
Hi there....
I am trying to clear and setfocus to textbox1 after I enter a number! I must be setting the controls wrong because I can't get textbox1 to accept focus without hitting enter twice. Here is the sample code below... please help! Option Explicit Private Sub TextBox1_AfterUpdate() Dim varOne As Long Dim varTwo As Long Dim varTotal As Long If TextBox1.Value < "" And TextBox1 < 0 Then varOne = TextBox1.Value varTwo = TextBox2.Value varTotal = varOne + varTwo TextBox2.Value = Format(varTotal, "Standard") TextBox1.Value = "" TextBox1.SetFocus Else TextBox1.Value = "" TextBox1.SetFocus End If End Sub Private Sub UserForm_Activate() TextBox1.Value = "" TextBox2.Value = Format(0, "Standard") End Sub Thanks Craig |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Setfocus Problem
Hi Craig -
Your code looks good. Only problem is that the Exit event fires after your AfterUpdate event procedure and it transfers focus to TextBox2, superceeding your TextBox1.Setfocus statement. Try adding an Exit event procedure. If that works for you, you can remove a few unnecessary lines from your afterupdate event. Jay ---------- Option Explicit Private Sub TextBox1_AfterUpdate() Dim varOne As Long Dim varTwo As Long Dim varTotal As Long If TextBox1.Value < "" And TextBox1 < 0 Then varOne = TextBox1.Value varTwo = TextBox2.Value varTotal = varOne + varTwo TextBox2.Value = Format(varTotal, "Standard") ' TextBox1.Value = "" ' TextBox1.SetFocus ' Else ' TextBox1.Value = "" ' TextBox1.SetFocus End If End Sub Private Sub TextBox2_Enter() TextBox1.Value = "" TextBox1.SetFocus End Sub Private Sub UserForm_Activate() TextBox1.Value = "" TextBox2.Value = Format(0, "Standard") End Sub ----- "Craig M" wrote: Hi there.... I am trying to clear and setfocus to textbox1 after I enter a number! I must be setting the controls wrong because I can't get textbox1 to accept focus without hitting enter twice. Here is the sample code below... please help! Option Explicit Private Sub TextBox1_AfterUpdate() Dim varOne As Long Dim varTwo As Long Dim varTotal As Long If TextBox1.Value < "" And TextBox1 < 0 Then varOne = TextBox1.Value varTwo = TextBox2.Value varTotal = varOne + varTwo TextBox2.Value = Format(varTotal, "Standard") TextBox1.Value = "" TextBox1.SetFocus Else TextBox1.Value = "" TextBox1.SetFocus End If End Sub Private Sub UserForm_Activate() TextBox1.Value = "" TextBox2.Value = Format(0, "Standard") End Sub Thanks Craig |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
Setfocus Problem
Hi Craig
The userform should be modeless for setfocus to work. When you show the form add vbModeless at the end. e.g.: Userform1.Show vbModeless Sharad "Craig M" wrote in message news:DdaGh.1215890$R63.187115@pd7urf1no... Hi there.... I am trying to clear and setfocus to textbox1 after I enter a number! I must be setting the controls wrong because I can't get textbox1 to accept focus without hitting enter twice. Here is the sample code below... please help! Option Explicit Private Sub TextBox1_AfterUpdate() Dim varOne As Long Dim varTwo As Long Dim varTotal As Long If TextBox1.Value < "" And TextBox1 < 0 Then varOne = TextBox1.Value varTwo = TextBox2.Value varTotal = varOne + varTwo TextBox2.Value = Format(varTotal, "Standard") TextBox1.Value = "" TextBox1.SetFocus Else TextBox1.Value = "" TextBox1.SetFocus End If End Sub Private Sub UserForm_Activate() TextBox1.Value = "" TextBox2.Value = Format(0, "Standard") End Sub Thanks Craig |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
Setfocus Problem
Sorry, my previous post should read:
"Try adding an Enter event procedure (for TextBox2)." instead of "Try adding an Exit event procedure." -- Jay "Craig M" wrote: Hi there.... I am trying to clear and setfocus to textbox1 after I enter a number! I must be setting the controls wrong because I can't get textbox1 to accept focus without hitting enter twice. Here is the sample code below... please help! Option Explicit Private Sub TextBox1_AfterUpdate() Dim varOne As Long Dim varTwo As Long Dim varTotal As Long If TextBox1.Value < "" And TextBox1 < 0 Then varOne = TextBox1.Value varTwo = TextBox2.Value varTotal = varOne + varTwo TextBox2.Value = Format(varTotal, "Standard") TextBox1.Value = "" TextBox1.SetFocus Else TextBox1.Value = "" TextBox1.SetFocus End If End Sub Private Sub UserForm_Activate() TextBox1.Value = "" TextBox2.Value = Format(0, "Standard") End Sub Thanks Craig |
#5
Posted to microsoft.public.excel.programming
|
|||
|
|||
Setfocus Problem
Thank You... adding the enter event for textbox2 did the trick!
Something so easy was killing me! Thanks Again Craig "Jay" wrote in message ... Sorry, my previous post should read: "Try adding an Enter event procedure (for TextBox2)." instead of "Try adding an Exit event procedure." -- Jay "Craig M" wrote: Hi there.... I am trying to clear and setfocus to textbox1 after I enter a number! I must be setting the controls wrong because I can't get textbox1 to accept focus without hitting enter twice. Here is the sample code below... please help! Option Explicit Private Sub TextBox1_AfterUpdate() Dim varOne As Long Dim varTwo As Long Dim varTotal As Long If TextBox1.Value < "" And TextBox1 < 0 Then varOne = TextBox1.Value varTwo = TextBox2.Value varTotal = varOne + varTwo TextBox2.Value = Format(varTotal, "Standard") TextBox1.Value = "" TextBox1.SetFocus Else TextBox1.Value = "" TextBox1.SetFocus End If End Sub Private Sub UserForm_Activate() TextBox1.Value = "" TextBox2.Value = Format(0, "Standard") End Sub Thanks Craig |
#6
Posted to microsoft.public.excel.programming
|
|||
|
|||
Setfocus Problem
Actually Jay was right the first time, but doesn't seem to know it.
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) Dim varOne As Long Dim varTwo As Long Dim varTotal As Long If TextBox1.Value < "" And TextBox1 < 0 Then varOne = TextBox1.Value varTwo = TextBox2.Value varTotal = varOne + varTwo TextBox2.Value = Format(varTotal, "Standard") cancel = True Else TextBox1.Value = "" cancel = True End If End Sub Private Sub UserForm_Activate() TextBox1.Value = "" TextBox2.Value = Format(0, "Standard") End Sub So you don't need a kludge solution with setfocus and extra events. It is usually best not to fight the behavior of the controls if you can help it. -- Regards, Tom Ogilvy "Craig M" wrote in message news:%qbGh.1206747$5R2.728175@pd7urf3no... Thank You... adding the enter event for textbox2 did the trick! Something so easy was killing me! Thanks Again Craig "Jay" wrote in message ... Sorry, my previous post should read: "Try adding an Enter event procedure (for TextBox2)." instead of "Try adding an Exit event procedure." -- Jay "Craig M" wrote: Hi there.... I am trying to clear and setfocus to textbox1 after I enter a number! I must be setting the controls wrong because I can't get textbox1 to accept focus without hitting enter twice. Here is the sample code below... please help! Option Explicit Private Sub TextBox1_AfterUpdate() Dim varOne As Long Dim varTwo As Long Dim varTotal As Long If TextBox1.Value < "" And TextBox1 < 0 Then varOne = TextBox1.Value varTwo = TextBox2.Value varTotal = varOne + varTwo TextBox2.Value = Format(varTotal, "Standard") TextBox1.Value = "" TextBox1.SetFocus Else TextBox1.Value = "" TextBox1.SetFocus End If End Sub Private Sub UserForm_Activate() TextBox1.Value = "" TextBox2.Value = Format(0, "Standard") End Sub Thanks Craig |
#7
Posted to microsoft.public.excel.programming
|
|||
|
|||
Setfocus Problem
Tom, I tried your method. It worked after I placed a Textbox1.Value =""
above the first cancel=True. The only problem is that it seems to create an endless loop, when I placed a commandbutton to exit the form I am unable to use it. Craig "Tom Ogilvy" wrote in message ... Actually Jay was right the first time, but doesn't seem to know it. Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) Dim varOne As Long Dim varTwo As Long Dim varTotal As Long If TextBox1.Value < "" And TextBox1 < 0 Then varOne = TextBox1.Value varTwo = TextBox2.Value varTotal = varOne + varTwo TextBox2.Value = Format(varTotal, "Standard") cancel = True Else TextBox1.Value = "" cancel = True End If End Sub Private Sub UserForm_Activate() TextBox1.Value = "" TextBox2.Value = Format(0, "Standard") End Sub So you don't need a kludge solution with setfocus and extra events. It is usually best not to fight the behavior of the controls if you can help it. -- Regards, Tom Ogilvy "Craig M" wrote in message news:%qbGh.1206747$5R2.728175@pd7urf3no... Thank You... adding the enter event for textbox2 did the trick! Something so easy was killing me! Thanks Again Craig "Jay" wrote in message ... Sorry, my previous post should read: "Try adding an Enter event procedure (for TextBox2)." instead of "Try adding an Exit event procedure." -- Jay "Craig M" wrote: Hi there.... I am trying to clear and setfocus to textbox1 after I enter a number! I must be setting the controls wrong because I can't get textbox1 to accept focus without hitting enter twice. Here is the sample code below... please help! Option Explicit Private Sub TextBox1_AfterUpdate() Dim varOne As Long Dim varTwo As Long Dim varTotal As Long If TextBox1.Value < "" And TextBox1 < 0 Then varOne = TextBox1.Value varTwo = TextBox2.Value varTotal = varOne + varTwo TextBox2.Value = Format(varTotal, "Standard") TextBox1.Value = "" TextBox1.SetFocus Else TextBox1.Value = "" TextBox1.SetFocus End If End Sub Private Sub UserForm_Activate() TextBox1.Value = "" TextBox2.Value = Format(0, "Standard") End Sub Thanks Craig |
#8
Posted to microsoft.public.excel.programming
|
|||
|
|||
Setfocus Problem
One easy fix is to select that commandbutton to exit and change the
..takefocusonclick property to false. But it looks like your code is written to never let you leave that text box. If that's correct, you may want to change that other textbox to a label--just to display the value. Craig M wrote: Tom, I tried your method. It worked after I placed a Textbox1.Value ="" above the first cancel=True. The only problem is that it seems to create an endless loop, when I placed a commandbutton to exit the form I am unable to use it. Craig "Tom Ogilvy" wrote in message ... Actually Jay was right the first time, but doesn't seem to know it. Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) Dim varOne As Long Dim varTwo As Long Dim varTotal As Long If TextBox1.Value < "" And TextBox1 < 0 Then varOne = TextBox1.Value varTwo = TextBox2.Value varTotal = varOne + varTwo TextBox2.Value = Format(varTotal, "Standard") cancel = True Else TextBox1.Value = "" cancel = True End If End Sub Private Sub UserForm_Activate() TextBox1.Value = "" TextBox2.Value = Format(0, "Standard") End Sub So you don't need a kludge solution with setfocus and extra events. It is usually best not to fight the behavior of the controls if you can help it. -- Regards, Tom Ogilvy "Craig M" wrote in message news:%qbGh.1206747$5R2.728175@pd7urf3no... Thank You... adding the enter event for textbox2 did the trick! Something so easy was killing me! Thanks Again Craig "Jay" wrote in message ... Sorry, my previous post should read: "Try adding an Enter event procedure (for TextBox2)." instead of "Try adding an Exit event procedure." -- Jay "Craig M" wrote: Hi there.... I am trying to clear and setfocus to textbox1 after I enter a number! I must be setting the controls wrong because I can't get textbox1 to accept focus without hitting enter twice. Here is the sample code below... please help! Option Explicit Private Sub TextBox1_AfterUpdate() Dim varOne As Long Dim varTwo As Long Dim varTotal As Long If TextBox1.Value < "" And TextBox1 < 0 Then varOne = TextBox1.Value varTwo = TextBox2.Value varTotal = varOne + varTwo TextBox2.Value = Format(varTotal, "Standard") TextBox1.Value = "" TextBox1.SetFocus Else TextBox1.Value = "" TextBox1.SetFocus End If End Sub Private Sub UserForm_Activate() TextBox1.Value = "" TextBox2.Value = Format(0, "Standard") End Sub Thanks Craig -- Dave Peterson |
#9
Posted to microsoft.public.excel.programming
|
|||
|
|||
Setfocus Problem
Your just too restrictive. This will allow the user to exit if the textbox1
is blank (which is should be when they want to exit). Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) Dim varOne As Long Dim varTwo As Long Dim varTotal As Long If TextBox1.Value < "" And TextBox1 < 0 Then varOne = TextBox1.Value varTwo = TextBox2.Value varTotal = varOne + varTwo TextBox2.Value = Format(varTotal, "Standard") TextBox1.Value = "" Cancel = True Else If TextBox1.Value = "0" Then TextBox1.Value = "" Cancel = True End If End If End Sub -- Regards, Tom Ogilvy "Craig M" wrote in message news:wjkGh.1218995$R63.23056@pd7urf1no... Tom, I tried your method. It worked after I placed a Textbox1.Value ="" above the first cancel=True. The only problem is that it seems to create an endless loop, when I placed a commandbutton to exit the form I am unable to use it. Craig "Tom Ogilvy" wrote in message ... Actually Jay was right the first time, but doesn't seem to know it. Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) Dim varOne As Long Dim varTwo As Long Dim varTotal As Long If TextBox1.Value < "" And TextBox1 < 0 Then varOne = TextBox1.Value varTwo = TextBox2.Value varTotal = varOne + varTwo TextBox2.Value = Format(varTotal, "Standard") cancel = True Else TextBox1.Value = "" cancel = True End If End Sub Private Sub UserForm_Activate() TextBox1.Value = "" TextBox2.Value = Format(0, "Standard") End Sub So you don't need a kludge solution with setfocus and extra events. It is usually best not to fight the behavior of the controls if you can help it. -- Regards, Tom Ogilvy "Craig M" wrote in message news:%qbGh.1206747$5R2.728175@pd7urf3no... Thank You... adding the enter event for textbox2 did the trick! Something so easy was killing me! Thanks Again Craig "Jay" wrote in message ... Sorry, my previous post should read: "Try adding an Enter event procedure (for TextBox2)." instead of "Try adding an Exit event procedure." -- Jay "Craig M" wrote: Hi there.... I am trying to clear and setfocus to textbox1 after I enter a number! I must be setting the controls wrong because I can't get textbox1 to accept focus without hitting enter twice. Here is the sample code below... please help! Option Explicit Private Sub TextBox1_AfterUpdate() Dim varOne As Long Dim varTwo As Long Dim varTotal As Long If TextBox1.Value < "" And TextBox1 < 0 Then varOne = TextBox1.Value varTwo = TextBox2.Value varTotal = varOne + varTwo TextBox2.Value = Format(varTotal, "Standard") TextBox1.Value = "" TextBox1.SetFocus Else TextBox1.Value = "" TextBox1.SetFocus End If End Sub Private Sub UserForm_Activate() TextBox1.Value = "" TextBox2.Value = Format(0, "Standard") End Sub Thanks Craig |
#10
Posted to microsoft.public.excel.programming
|
|||
|
|||
Setfocus Problem
Thanks Tom... that did the trick!
Craig "Tom Ogilvy" wrote in message ... Your just too restrictive. This will allow the user to exit if the textbox1 is blank (which is should be when they want to exit). Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) Dim varOne As Long Dim varTwo As Long Dim varTotal As Long If TextBox1.Value < "" And TextBox1 < 0 Then varOne = TextBox1.Value varTwo = TextBox2.Value varTotal = varOne + varTwo TextBox2.Value = Format(varTotal, "Standard") TextBox1.Value = "" Cancel = True Else If TextBox1.Value = "0" Then TextBox1.Value = "" Cancel = True End If End If End Sub -- Regards, Tom Ogilvy "Craig M" wrote in message news:wjkGh.1218995$R63.23056@pd7urf1no... Tom, I tried your method. It worked after I placed a Textbox1.Value ="" above the first cancel=True. The only problem is that it seems to create an endless loop, when I placed a commandbutton to exit the form I am unable to use it. Craig "Tom Ogilvy" wrote in message ... Actually Jay was right the first time, but doesn't seem to know it. Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) Dim varOne As Long Dim varTwo As Long Dim varTotal As Long If TextBox1.Value < "" And TextBox1 < 0 Then varOne = TextBox1.Value varTwo = TextBox2.Value varTotal = varOne + varTwo TextBox2.Value = Format(varTotal, "Standard") cancel = True Else TextBox1.Value = "" cancel = True End If End Sub Private Sub UserForm_Activate() TextBox1.Value = "" TextBox2.Value = Format(0, "Standard") End Sub So you don't need a kludge solution with setfocus and extra events. It is usually best not to fight the behavior of the controls if you can help it. -- Regards, Tom Ogilvy "Craig M" wrote in message news:%qbGh.1206747$5R2.728175@pd7urf3no... Thank You... adding the enter event for textbox2 did the trick! Something so easy was killing me! Thanks Again Craig "Jay" wrote in message ... Sorry, my previous post should read: "Try adding an Enter event procedure (for TextBox2)." instead of "Try adding an Exit event procedure." -- Jay "Craig M" wrote: Hi there.... I am trying to clear and setfocus to textbox1 after I enter a number! I must be setting the controls wrong because I can't get textbox1 to accept focus without hitting enter twice. Here is the sample code below... please help! Option Explicit Private Sub TextBox1_AfterUpdate() Dim varOne As Long Dim varTwo As Long Dim varTotal As Long If TextBox1.Value < "" And TextBox1 < 0 Then varOne = TextBox1.Value varTwo = TextBox2.Value varTotal = varOne + varTwo TextBox2.Value = Format(varTotal, "Standard") TextBox1.Value = "" TextBox1.SetFocus Else TextBox1.Value = "" TextBox1.SetFocus End If End Sub Private Sub UserForm_Activate() TextBox1.Value = "" TextBox2.Value = Format(0, "Standard") End Sub Thanks Craig |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
SetFocus problem | Excel Programming | |||
SetFocus problem | Excel Programming | |||
SetFocus Problem | Excel Programming | |||
TextBox SetFocus Problem | Excel Programming | |||
SetFocus problem | Excel Programming |