TextBox.SetFocus Not Working
Jun 8, 2007if i write the following function on a checkbox,
View 10 Repliesif i write the following function on a checkbox,
View 10 RepliesI have the below to check for a numeric entry and when it's not, it deletes the entry, shows a Splash Form for a few seconds telling the user to enter Numeric, and then unloads.
The problem is, on the SetFocus part. I thought that it should put the cursor back into TextBox2 for another entry. It doesn't, in fact the cursor is nowhere to be seen. I have to grab the mouse and click in the TB2 to reenter a number.
Private Sub TextBox2_Change()
'//Check for numeric entry
If Not IsNumeric(TextBox2) Then
Me.TextBox2 = ""
'//Show SplashForm if not numeric
SplashForm.Show
Me.TextBox2.SetFocus
End If
End Sub
I'm having some problems with SetFocus on a user form that I am using. Code is Below.
Dim Answer As Variant
With cboAccount
If .Value "" And .ListIndex = -1 Then
Answer = MsgBox(cboAccount.Value & " is not a registered account, would you like to add it?", vbYesNo)
If Answer = vbYes Then
Load frmNewAccount
frmNewAccount.txtAccountName.Value = frmEnterTransaction.cboAccount.Value
frmNewAccount.Show
If Answer = vbNo Then
cboAccount.SetFocus
End If
End If
End If
End With
End Sub
basically the code asks if the if the answer placed in a cboAccount (combo box) is valid against the list designated to that combo box,
If the entry is not valid a message box appears asking if they would like to add the entry to the valid list if they do not want to do this they can click no and in which case I wan't the focus to be set back to the combo box however currently the setfocus command above does not does not work and the focus is set to the next text box.
I have two userforms. When the user chooses the choice "Other" in the userform frmTradeSickOther, another userform called frmOther will be called. At this point, the user will enter some required comments in a textbox (called txtOther) and click the "Add Comment" button. If the user does not enter anything, a prompt will inform the user to type something in the textbox.
My problems: Once the user clicks okay to the prompt, frmOther is called back. When it's called back, I want the cursor to blink in the textbox. Eventhough I have SetFocus on the textbox, it does not work. I don't know why.How do I prevent the user from just hitting enter (i.e., accepting blank lines as comments) and bypassing the commenting part. The code below accounts for hitting enter once (i.e., one blank line), but not multiple times. How do I do this?
Here is what I have when the user clicks on the "Other" choice in frmTradeSickOther:
Code:
Private Sub optOther_Click()
Unload Me
frmOther.Show
frmOther.txtOther.SetFocus 'This gets the cursor to blink in textOther when frmOther is called.
End Sub
Here is what I have when the user clicks the "Add Comment" button on frmOther:
Code:
Private Sub btnAddComment_Click()
On Error Resume Next
txtOther.Value = Trim(txtOther.Value) 'This is to make sure spaces aren't accepted as a comment.
If Me.txtOther = vbNullString Then
Me.Hide
MsgBox "Please enter the necessary information.", vbInformation, "Required Field"
Me.Show
Me.txtOther.SetFocus 'Here is where I set focus on txtOther.
Exit Sub
End If
'Everything below is to add comments automatically to each cell when a value is changed.
Application.CommandBars("Cell").Controls("Delete Comment").Enabled = True
If Not ActiveCell.Comment Is Nothing Then
Application.CommandBars("Cell").Controls("Edit Comment").Enabled = True
Range(curCell).ClearComments
[Code] .......
I've got a user form with 12 textbox, one for each month a total textbox number 13 and a 14th text box (TB28) to enter $'s in.
AfterUpdate in each textbox 1-12 posts its value to a worksheet all values are summed in a =sum range which in turn populates textbox 13. When TB13.text = 100.00 it sucessfully calls a number of routines but what I can't get it to do is set focus on TB28.
Private Sub TextBox13_Change()
If TextBox13.Text = "100.00" Then
With FormPhasedAmt.TextBox28
.SelStart = 0
.SelLength = Len(TextBox28.Text)
.SetFocus
End With
End If
End Sub
It returns a Run time error Unexpected call to method or property access highlighting .SetFocus. The rest of the code works OK. Is it because other textbox on the same user form have text highlighted because of the tab order?
In Excel 2000 there seems to be a problem with setting the focus in a UserForm TextBox if the SetFocus method is applied in the same submodule as the UserForm.Show method. Microsoft's circumvention for this is to put the SetFocus command in the form's Activate event submodule.
This seems to work OK except when the TextBox you are applying the SetFocus to is the first control inside a frame. It works if the TextBox is not the first control, and it can be circumvented by first setting the focus on a subsequent control then switching the focus to the intended control.
However, the circumvention is not that useful if there is only one TextBox control in a frame or, as in my current project, if you try to create a generic piece of code to validate controls from multiple forms and set the focus from within the generic code.
Does anyone know of a way over overcoming this problem and being able to directly set the focus to the first TextBox inside a frame?
This is for a VBA TextBox (Not Worksheet). I have two text boxes, both are going to have dates. Textbox1 a user will enter a date; example 10/22/08 or 10-22-08 or 10-22-2008 etc, TextBox2 will get that date and add seven days.
View 3 Replies View RelatedI am creating an Add Contact form. There is a checkbox for Individual (if left unticked then contact is a business entity - not an individual).
If Individual = True and If the txtNameFirst control has no value in it Then after the end user tabs away from the txtNameLastRegistered, the form should SetFocus on the txtNameFirst textbox (entry for this field is mandatory only if the contact is an individual - otherwise this field is made invisible)
But it is not working. I tick chkIndividual, I enter a name in txtNameLastRegistered, I tab away, code is called from txtNameLastRegistered_AfterUpdate (which includes the SetFocus code) but the form appears without focus in any of the controls!
My code below:
[Code] ......
I have a UserForm which enables the user to input sales figures for each month for 5 years.
At the bottom of each year is the total box.
At the moment it only sums the 12 months when each month has a figure in it. Sometimes the user only needs to enter, lets say, 4 months figures and the total box doesn't work. It also doesn't sum as data is entered i.e. it only adds them up when all 12 months TextBoxes have a number in them.
Can I literally make it as simple as it would be on a normal worksheet i.e. =SUM(A1:A12) ??
Here is my code that is 'in' each month's TextBox
[Code] .....
End Sub
The total box itself - txtY1Total - doesn't have any code in it.
I am working on a "Salary Payment voucher excel Userform".
How can i do it, if i don't want manually fill in the number of working days into the textbox myself, Can i have the userform to automatically fill in the number of days when i initialize the userform.
We are working at 6 Days weeks.
I'm using the following code to try to ensure a value is entered into a text box, but when I click over to the next text box skipping the first one entirely, I don't receive any message indicating the previous box is empty. I'm trying to make it so certain fields are required and others are optional. Here's the code I'm currently using:
[Code] .....
I'm trying to write a macro that filters a table via textbox (criteria), specifying the column to filter through a combobox. I managed to get it to work with every format (date, text, etc.) except with numbers. I'm attaching the file so you can take a look at the code.
If I have a column containing numbers but the cells have text format and I reformat those cells to numbers (using points to separate thousands [I'm from Venezuela, we use dots, not commas]) the results aren't visible unless I modify each cell individually. How can I avoid this?
Lastly, I'm using a macro that I found online that sets invisible shapes on each cell of the header and asigns another macro to these shapes to sort by ascending or descending order in the column over which the shape is put. I made some changes to the macro that actually sorts the values and it works fine, but sometimes I have to resize the shape (on the left side) so that it's further inside the cell or else I'll get an error.
EDIT: It doesn't work with dates either!
EDIT2: I tried copying the table and the codes to a new workbook and now magically it works with numbers, but still not working for dates. Also I'm still having to resize the invisible shape (only in header of the first column ('C')) and the changes in format still aren't visible unless I modify each cell. I think this last issue has something to do with 'SortOneTime' macro or the 'Ordenar' macro because it happens after I run them.
Tabla General (Nueva) (Combobox).xlsm
Excel 2003. User form coding an If statement the "Else" FieldName.Setfocus. The User form has a MultiPage object in addition to the above (setfocus) in a particular field (NOT on the MultiPage object) I want it open to Page2 instead of what ever page it was last closed on. I tried this: MultiPage1.Page2.Enabled
View 2 Replies View RelatedI have been trying to setfocus to any other object on my userform with absolutely no luck at all?
In the code below I open a dialog box to import a text file (with CommandButton1), if no file is selected the user is prompted, this works fine. However it leaves focus to the textbox and the user would have to click on some other object and re-enter the textbox to open the dialog box again.
I have been working for 8-1/2 hours to get the focus to move to a specified control on my user form if criteria are met in two other controls on the same user form. It's not responding as I expect. I think I know what is happening; I just don't know why.
Situation: I have a user form with the following relevant fields in this tab order - LMonthDay, tbMonthDay, SBMonthDay, LYear, tbYear, SBYear, LTime, and tbTime. I used the designations L, tb, and SB in my control names to represent label, text box, and spin button respectively.
Problem: Once the SBMonthDay control has the focus, if I press TAB without changing the control's value, it does not execute the Exit event statement the way I anticipated. I want the focus to move to the tbTime control when the tbMonthDay & tbYear controls are already properly populated. (They will already be populated for 99% of the entries in this case.)
Private Sub SBMonthDay_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Debug.Print "SBMonthDay_Exit Begin"
If ISLIKE(tbMonthDay.text, "####") _
And ISLIKE(tbYear.text, "####") Then
tbTime.SetFocus
Else: tbYear.SetFocus
End If
Debug.Print "SBMonthDay_Exit End"
End Sub ...........................................
I have a userform with a multipage consisting of 4 tabs.
Each one has several combobox's and 1 commandbutton.
As you move through the form the commandbutton moves the data to my worksheet then moves you to the next page. When it reaches the last page it will return you to the first page then unload the form which is great.
The problem I am having is the cursor is not in any of the boxes on the first page. If I click on one of the other tabs then return to first page the first combobox has the focus. All the tab orders are correct. Can anyone point me in the right direction.
Private Sub cmdNext3_Click()
ActiveWorkbook.Sheets("CarDetails").Activate
Range("A1").Select
Do
If IsEmpty(ActiveCell) = False Then
ActiveCell.Offset(1, 0).Select
End If
I am using a Textbox1_Exit event that (if certain values are true) sets the focus to different Textbox. However, when I invoke the Textbox3.SetFocus, it redoes all the code in the Textbox1_Exit event since it's technically leaving now.
How do I stop this from happening and ensure that the Exit event happens once? OR How do I properly SetFocus inside an Exit event?
I would like point to a cell in a spreadsheet, click a Command Button and copy the content of this cell to another cell, say D30.
View 2 Replies View RelatedI have a project with many textboxes on different forms. On some of the textbox_exits on some of the forms, I call a standard module that checks what the user has input. If the user needs to change the input, a msgbox appears to inform the user the info needs to be changed.
I have tried to use ControlSource, Name etc., But I cannot seem to setfocus back onto which ever textbox the input needs to be changed. I think it has something to do wih the _exit event, but not sure.
How to setfocus on a cell, when user press enter, key up, or tab ?
examp. :
i want setfocus to cell A5, when i press enter or key up on cell A2.
I've got a userform with multiple pages, and in my userform initialize sub I set the focus to "combobox1" on "page1". When a user is on page2 of the form and clicks my "ClearData" button, which calls the initialize event, I get a run time error 2110 - "Can't move focus... etc" I would like users to have the ability to clear the form and start over no matter what page they are on.
View 8 Replies View RelatedI am attempting to format some TextBoxes from within a For/Next loop. I need a way to check which TextBox is the active TextBox in the loop. Using i as the variable, I came up with this code snippet: Me.Controls("TB" & i).Text = Format("TB" & i, "mm/dd/yy")
If i = 3, this gives me in TextBox3 (which is called TB3) the text 'TB3' and not the value of what is in TB3. It has got to bo something simple, I just can't see it!!!
I have a workbook in excel 2003 which I had been running the following macros (listed below). We recently upgraded to Excel 07, and neither are working. When I try to run them, the "debug" option highlights the following line in the sort macro "Range("A2:z" & lastcell).Sort key1:=.Columns(1)". This is driving me crazy, as the macros worked perfectly under the older version of Microsoft. Is there an issue with crossfunctionality between '03 and '07'.
Private Sub Worksheet_change(ByVal target As Excel.Range)
If target.Column = 1 Then
ThisRow = target.Row
startRow = 1
i = 1
Set ws = ActiveSheet
maxRow = Cells.SpecialCells(xlLastCell).Row
maxCol = Cells.SpecialCells(xlLastCell).Column
ActiveSheet.UsedRange.Interior.ColorIndex = xlNone
Do While i
Is there a way without using code to have the text in a text box (excel 2003), copied to another cell or another text box on a different worksheet?
I have information in a text box on 1 worksheet. I would like this information to automatically be copied to another worksheet. On the master sheet, if any of the information gets changed or updated, the copied information should get updated as well.
I've been using the following code to conditionally format userform textboxes based on a specific value (in this case 2490):
[Code] ........
What I'm looking to do now is amend this so rather than use a specific value, to use the value in a specific textbox on the same userform.
I need a userform textbox event that fires after I tab or click out of the textbox. Going by the list of options:Beforedragover, BeforeDroporPaste, Change, DblClick, DropButtonClick, Error, Keydown, Keypress, keyup, mousedown, mousemove, mouseup.
I can't figure out which one will do what I want. The change event happens instantaneously which doesn't work. I need to fire off the event when my focus leaves the textbox.
I need the value of active x control textbox on my worksheet 1, to be copied to a textbox in my userform, that pops up from that sheet....
And I want it to display after the textbox on my worksheet has been updated and the comman button for the userform is clicked...
In Excel VBA Userform, how to copy the text from textbox automatically when the cursor is being moved from the textbox. And when i put CTRL+V then the copyed text has to be pasted.
View 5 Replies View RelatedCode:
Private Sub cmdSearchButton_Click()
Dim txtbox As String 'stores lookup value
Dim x As Variant 'value for wwid txt box
Dim ForeName As String
Dim SurName As String
Dim wwid As Variant
Dim iPosition As Integer
[Code] .......
Here is my code, it does a vlookup and if the persons name is not found it will split the text entered into forename and surname but when i try and add
Code:
frmAdd.txtForename.Text = "&ForeName &"
frmAdd.txtSurname.Text = "&SureName &"
It actually displays &ForeName & in the text box of the next from rather than what ForeName is..
eg. John Smith -> search button -> user not found msg -> user wants to add user -> string is split into forename and surname -> forename = John , surname = Smith -> display this in the second form.
What code should i be using to do this, i thought that &ForeName & would work.
Looking for a macro to insert a textbox with the textbox containing a formula rather then text.
Sub AddTextBox()
ActiveSheet.Shapes.AddTextBox(msoTextOrientationHorizontal, 2.5, 1.5, _
116, 145).Name = "Textbox1"
ActiveSheet.Shapes(1).Select
Selection.Formula = "=Manpower!R[3]C[1]"
End Sub
I tried this but I cant get the formula portion to work... I just want to insert a macro with that formula....