Event Keypress, Tab Or Keydown And SetfocusAug 26, 2009
How to setfocus on a cell, when user press enter, key up, or tab ?
i want setfocus to cell A5, when i press enter or key up on cell A2.
How to setfocus on a cell, when user press enter, key up, or tab ?
i want setfocus to cell A5, when i press enter or key up on cell A2.
Is there a way to fix a private sub to catch keydown effect of various combos and textboxes of my userform?
Instead of typing the same thing to each and every control's keydown event just call a sub. Code goes like:
Select Case KeyCode
ShellExecute 0, "open", "hh.exe", ThisWorkbook.Path & "1.chm", "", 1
If MsgBox("Backup now", vbQuestion + vbYesNo) = vbYes Then BackUp
Col = 3
Instead of that, if i place code in a private sub test() just call test in keydown event
I have got some code that is duplacated a few times. It allows only number values to be entered into a textbox.
Is there a way to make a function out of this to cut out the duplication of code.
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've got a small - almost "cosmetic" problem. I have a listBox on a userForm and I'm checking for a keystroke combination to see if the user wants to edit related data. That's working fine. However, when I return to the userForm, it beeps at me. Impertinent! I think it's because Excel doesn't know what to do with the keyStroke that I used - Alt U. I've attached code. I think that I just have to set the keycode to something that will be ignored by Excel.View 2 Replies View Related
Iv found some code that will limit my textbox entry to numbers only, i dont quite understand how it works and i need to change it so it limits the textbox keypress entry to Text Values only.View 3 Replies View Related
creating macro dynamiccally on keypress and execute it
i have 3 excel sheet sheet1, sheet2, MasterSheet
MasterSheet conatins the following
COLUMN A COLUMN B COLUMN C
Colorcode FLAG SKEYS
RGB(121,223,214) A Ctrl+a
RGB(125,228,114) B Ctrl+b
I have 3 columns column 1 contains colorcode in RGB format column 2 Contains FLAG and column 3 contains SHORTCUT KEYS
i have a macro in sheet1 & sheet2 for coloring the backgrouf color of the selected rows in sheet1 or sheet2
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = RGB(234, 241, 221)
.PatternTintAndShade = 0
what i need is when th user presses say Ctrl+c , RGB(233,129,220) from the MasterSheet needs to be copied in the macro as .Color = RGB(233,129,220) instead of RGB(234, 241, 221) and the selected row in sheet1 shld be colored. how can it be done
I have a Userform whose purpose it is to capture payment information, in particular Creditcard information. To this end it has (amongst other elements) 2 textboxes - textboxCardNr1 and TextboxCardnr2.
the User enters the cardnr in Textboxcardnr1 as, e.g. 4321098765432109. Through the code below I transform this into the more readable number
4321-0987-6543-2109. I capture the keypress instance to only allow numbers to be entered in this field and to simultaniously update TextboxCardNr2 with the keystrokes.
On exiting TextboxCardNr1 the content of TextboxCardNr2 is copied to the clipboard to be available for pasting on a secure website in the approriate field.
My problem is, that when the user makes a mistake and changes the number in TextboxCardNr1, those changes are not automatically mirrored in TextboxCardNr2.
I want the easy to read form of the card - with the dashes, to be saved. The website the user is pasting the content of TextboxCardnr2 to does not accept the number with dashes.
Private Sub TextBoxCardNr1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Dim taste As String
Dim wert As String
taste = VBA.Chr(KeyAscii)
wert = Me.TextBoxCardNr1.Text
KeyAscii = 0
If taste = "0" Or taste = "1" Or taste = "2" Or taste = "3" Or taste = "4" Or taste = "5" Or taste = "6" Or taste = "7" Or taste = "8" Or taste = "9" Then If Not Me.TextBoxCardNr2.Text Like "################" Then
Me.TextBoxCardNr2.Text = Me.TextBoxCardNr2.Text & taste............................
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
if i write the following function on a checkbox,View 10 Replies View Related
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.EnabledView 2 Replies View Related
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
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
frmNewAccount.txtAccountName.Value = frmEnterTransaction.cboAccount.Value
If Answer = vbNo Then
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 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
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()
If IsEmpty(ActiveCell) = False Then
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 Related
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 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
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
.SelStart = 0
.SelLength = Len(TextBox28.Text)
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'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 Related
Is there any way to "Inscribe" a cell? I would like to run a macro on Enter keypress, that would execute different code depending on that "inscription" that would be invisible to user. I could use some properties of . Validation property like this:
Private Sub EnterPressed
'following code to ensure proper functioning of Enter in any other Worksheet
If ActiveSheet <> mySheet 'MySheet is global Variable then
'now the real code
If ActiveCell.Validation.InputMessage = "1" Then
The problem is, I use Data Validation and Conditional Formatting, so can't use any of these properties.
Is there a way to write a Worksheet_SelectionChange (ByVal Target As Range) event in module after creating a sheet in VBA? I constantly delete a sheet, then repopulate it with a new one that is empty, but I need to add some code that happens if they should change a particular cell. It worked when I ran it on a worksheet without refreshing, but as soon as I cleared and repopulated the sheet, it was gone. Is there a way to preserve this?View 9 Replies View Related
I have the following code, which works perfectly:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim TotalDays As Integer
TotalDays = Range("C65536").End(xlUp).Row + 1
The code points to the next blank cell so the user can input a value. Each time the user enters a value I want to re-run the code so that the colour of the cell changes.
However I also want to perform various calculations on the sheet. However this means the sheet is being changed and so continually repeats my code.
How do I add the following, to my previous code?
Range("E8").Value = Cells(7, 6) * 2.5
Looking for the syntax that will allow me to code an event sub routine, based off the event of a specific function e.g. findnum being run.View 14 Replies View Related
What would be the name of the event where if I select a particular cell in Sheet1 it triggers something in say Sheet2?View 9 Replies View Related
Working in Excel 2003. I have a VBA code that, if a particular option is chosen from a drop down box, then a message box appears. What I'd like to do is alter this code so that if cell J5 has "Text 1", "Text 2", or "Text 3" then the message box does not appear. Here's myView 3 Replies View Related
I've created a macro with a custom dialog box, but I don't know how to make the transition from when I make the dialog box pop up, the user enters the information, then they click "Continue" or "Cancel" or whatever it may be, how to do I make it happen from there out?
Do I make the command buttons a boolean and if they click it's true? How do I make it work?
I have a user input box (VBA) with two columns of data entry. The leftmost column has text boxes labeled color1, color2, color3, etc.. The rightmost column has text boxes labeled tag1, tag2, tag3, etc..
I have the TAB sequence set to go from color1 to tag1, color2 to tag2, color3to tag3, etc..
A user can inadvertently tab over the color1 (or color2, etc. columns) into the tag1 (or tag 2, etc. columns) column without entering data in the color column.
Is there coding to allow a TAB key entry to be a Change Event such that, if a user TABS out of color1 without entering data, a MsgBox could signal that they must enter data in the color1 field before they can continue?
Alternately, can you suggest a different approach? The goal is to require an entry in the leftmost column (color1) before they can proceed to the tag1 field. Of course, they are given a "Cancel" option.
I have a hyperlink within Sheet1 (Functionalities) of my workbook that looks like this: ...View 13 Replies View Related
I have a worksheet used for scheduling. When a members time is updated, it updates the counting cell for that time by subtracting 1 (thats simplified, the forumla is more complex than that).
I have five teams and five workbooks for each team to do it's own scheduling. In just ONE workbook, the Worksheet_Change() event has stopped executing. It's fine in the others. I renamed the workbook to archive it then put another workbook in it's place and now that one works just fine.
The workbook that I've archived, I hate doing that not knowing what would cause the Worksheet_Change() to stop being recognized. There is no code on the sheet or related to the sheet that would stop it or cause events to be cancelled.
I wanted to know if there is some secret keystroke combination that may have been inadvertently clicked that would cause events to firing or stop being recognized?
I have a table on excel that I would like to have an event calculated by the hour and would like to know how to, ex:
that above is where I want the formula to calculate the following:
Also I would like to do something similar like that but for age, ex:
I need to have a check box, that when it is checked the user must fill in a cell.View 9 Replies View Related
I have two workbooks that have the following
Private Sub Worksheet_Change(ByVal Target As Range)
Dim myColor As Integer
If Intersect(.Cells, Range("v:v")) Is Nothing Then Exit Sub
If IsEmpty(.Cells) Then r.Offset(, 1).Interior.ColorIndex = xlNone: Exit Sub
If Not IsDate(.Cells) Then r.Offset(, 1).Interior.ColorIndex = xlNone: Exit Sub
Select Case Month(.Value)
Case 1: myColor = 3
Case 2: myColor = 17
Case 3: myColor = 19
Case 4: myColor = 22
Case 5: myColor = 26
Case 6: myColor = 33
Case 7: myColor = 36
Case 8: myColor = 38
Case 9: myColor = 40
Case 10: myColor = 42
Case 11: myColor = 44
Case 12: myColor = 7
I have this code in 1 sheet in one of the books (and all other sheets work fine), and the same code in all sheets in the other book. Both books work the way it's supposed to.
Is it necessary to have the Worksheet_Change event in all the sheets (all sheets act on the code the same way) or is it okay for just one sheet?
Could I encounter a problem if in only one sheet?
I just don't see why I would have to add more size with the code in all sheets if it is not necessary.
I found this code on one of my many searches, that works great.
(can't remember where I got it or who wrote it, (My deepest apoligies to the author))
pRule = Not pRule
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If pRule Then
For Each aCell In ActiveSheet.UsedRange
If aCell.Interior.ColorIndex = 27 Then aCell.Interior.ColorIndex = xlNone
On Error Resume Next
For Each aCell In Application.Intersect(ActiveCell.EntireRow.Cells, ActiveSheet.UsedRange)
If aCell.Interior.ColorIndex = xlNone Then aCell.Interior.ColorIndex = 27
This works in a sheet module. How can I put it in the This Workbook module so it works on all sheets.
By the way, what this does is highlight the whole row on a clik of a cell, leaving any color formating that was initially there alone.
Very useful if you are looking at say A10 and then want to look at Z10 without losing focus on the row.
There is a Workbook_Open event in VBA. Is there a Worksheet_Open event? I.e. I want to write some code that is applied when a worksheet becomes active/is displayed to the user.
E.g. I am in Sheet1. I click a button which links me to Sheet2, however in doing that I want the value of the Active Cell in Sheet1 to be displayed in A1 of Sheet2.
Is this possible? Is there another way to do this.
I would like to create some VBA code that changes the color of the cells I have selected, as soon as I let go of my mouse click. Additionally, is there a way to identify where the range begins and ends so I can test to make sure the range is inside a certain area?View 9 Replies View Related
I want to execute as the user saves the workbook. I want to unhide the rows that may have been hidden during use, on the save. I would prefer it to just happen with no interaction with the user. They save the the book and without them even knowing the rows are unhidden and the file saves. The code it self works as I want it to, I added to a command button with no problems as soon as I add it to the before save in the Thisworkbook it will not even work even if I just try to step in.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
Worksheets("Prelims").Range("A11:A511").EntireRow.Hidden = False
Worksheets("Elecs").Range("A11:A1261").EntireRow.Hidden = False
Worksheets("Civils").Range("A11:A5011").EntireRow.Hidden = False
Application.EnableEvents = True
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
I have a macro that needs to run whenever a result from a calculation on my worksheet changes. I'm currently using Worksheet_Change to accomplish this, which works fine.
The only problem is that I would like the macro to wait until all calculations are finished (there's a bunch...) before running the macro. It would seem that the AfterCalculate event would help, but I can't seem to get the code to work correctly (or even at all). I'm pretty new at this... If anyone can give me a clue, I would greatly appreciate it! My searches on the message board and the web have come up pretty empty.
I'm running Excel 2007. Not sure if any other details are needed.
I have a MS Access db in which I have two delete queries called 'qrySessionsCompleted1' and 'qrySessionsCompleted2'. What VBA code can I use in the BeforeClose event to run these?View 9 Replies View Related