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:
Private Sub optOther_Click()
frmOther.txtOther.SetFocus 'This gets the cursor to blink in textOther when frmOther is called.
Here is what I have when the user clicks the "Add Comment" button on frmOther:
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
MsgBox "Please enter the necessary information.", vbInformation, "Required Field"
Me.txtOther.SetFocus 'Here is where I set focus on txtOther.
'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
while trying to limit the user's input to a userform textbox to no avail. For example one textbox on the form should only be numbers and I therefore want to restrict the user to typing in a two digit code like 02 or 72 (not for calculations). Another textbox I only want to allow the user to input 6 characters in the format letter, four numbers and a letter. If the user inputs the wrong stuff a message box pops up and the focus is reset
I 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
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?
I 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'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 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.
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.
i am trying to make a user form with two msg boxes (To and From Date). In excel spreadsheet It was rather easy to bring a popup msg if they were invalid under some stated rules. see below a rationale of the rules where A3=From Date and B3 To Date and the desired outcome of is:
So i wonder if it is possible to make a VBA code to validate these two dates? and bring a warning msg after keypress or after pressing submitcmd or any other available if available.
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.
Code: 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
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
I tried looking for everywhere, but i still cant seem to find the solution.. I have an Active X textbox on a worksheet, and I need it's value to show up on a textbox on my userform, that shows up through a command button on that worksheet. I'm fairly new to vba.
I have a form “RiseSpan” with three TextBoxes, “txtInSpan”, “txtDepth” & txtOutSpan”. I wish to enter values in “txtInSpan” and “txtDepth”. These values are placed in cells A1 and A2. If both “txtInSpan” and “txtDepth” are greater that zero, I want “txtOutSpan” to show the value of cell C11.
I have textbox1 through textbox8 and all have a number value controlled by their respective spinbutton. The total of those txtbox's adds up into textbox 9, but I currently have a command button to sum the value. would I would like is textbox 9 to update as I'm updating txtbox 1-8 automatically. let me know if possible
After seaching on this and other forums I have not been able to get an answer to this question. Also I know there are a lot of posts out there that sound like this, but none are the same.
My spreadsheet has multiple userforms, which has multiple textboxes. The textboxes are for dates. I have it set so when you double click in the textbox that it calls a calendar function.
Here is the problem.... After you click ok on the calendar form I want the date to go into the textbox that the calendar form was called from. The only way for me to get this to work is to create a seperate calendar form for each textbox that I call the calendar form from.
I have a userform and I want a textbox that counts cells J7,M7,P7,S7,V7. Does anyone know how to write this code and where to put it. All I want is the textbox to show how many cells of these five have data in them and I want it to update automatically.