I'm trying to set the focus back to the field that triggers an AfterUpdate event.
Private Sub myField_AfterUpdate()
myfield.SetFocus
End Sub
Code above sets the focus to the next field in the taborder instead of keeping the focus on the field (that didn't pass the validation) that triggered the AfterUpdate event.
is there any way to know if a COMBObox has the focus?
* * *
I have a ComboBox and when I press ENTER inside this comboBox a run a Macro
Private Sub CbFormularios_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
some times I am inside the ComboBox and one of the Item whithin this combobos is Selected, but stead of pressing the enter keyboard I press a commadButton but to run the macro attached to this command button I have to know if the cursor of my mouse is whithin the ComboBox "Over the comboBox". kind of:
If ActiveSheet.Cbox1.Value Is Not highlited Then call Macro1
I had to reset my excel on friday now today I'm getting an error when opening up an workbook. The error is " Cant move focus to the control because it is invisible ,Not enabled or type that does not accept focus. I have this code in a workbook when the workbook opens
I am trying to implement a simple userform using the RefEdit control.
So I have the RefEdit control and an Ok (which has code attached to it) and a Cancel commandbutton.
For some reason, I can't get the focus on the RefEdit control (i.e. when I activate the form, I have to actually click in the RefEdit box before it gets the cursor). Which property sets the focus in this control?
Right now I have the Ok button Default property set to True.
I have a commandbutton on the spreadsheet that activates the userform.
I'm using a VBA UserForm (ShowModal=False) as the front-end on a spreadsheet for logging purposes. Here's the progression of the problem:
1. I have the UserForm loaded and the cursor is in any given textbox/ combobox on the form.
2. I switch to another program, then come back to the UserForm.
3. The cursor no longer appears in whatever textbox/combobox I was in when I left the UserForm. If I type, nothing happens (I have to click the field again first, then type).
However, if I TAB, it will go to the next field in the Tab Order just fine. It seems that the control has "pseudo-focus"--it knows which field to tab to next, but the control won't accept input unless you click it. The odd thing is--this UserForm has a button which launches another "child" UserForm. That "child" UserForm does not have this problem.
I need to test what control will receive focus after the exit event this test needs to be in the exit event so i am able to validate and cancel only if focus will be the enter button
Private Sub myTextBox_Exit(ByVal Cancel As MSForms.ReturnBoolean) If NextControl.Name = "EnterButton" Then DoMyValidationTest 'and other stuff, such as set TabIndex Else 'do nothing End If End Sub so what should "NextControl" actualy be???
I 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!
I want a control to be updated when I scroll a scrollbar. The scrollbar is linked to "B25" and the control, tboYYWW2, is then updated via a HLookup of the "B25" value. By the code below I just get the control updated when the worksheet is activated and not when the "B25" value is updated by the scrollbar. How to make this work ? I also attach the workbook file I'm doing the tests in.
Private Sub Worksheet_Activate() Dim varYYWW2 As String Dim varWeekNr2 As Integer varWeekNr2 = Range("B25") varYYWW2 = WorksheetFunction.HLookup(varWeekNr2, Worksheets("EDUtest").Range("WeekNrWeek2"), 3) tboYYWW2 = varYYWW2 End Sub
I have a userform with a multipage issue. On page1 I have a command button that formats cells. On page2 I have textbox1 with a fixed number, textbox2 that counts the number of formatted cells (from the command button on page 1) and textbox3 that's going to sum textbox1 and 2. So here's the issue. Lets say I'm on page2 viewing the textboxes, if I switch back to page1 and format additional cells and then switch back to page2, textbox2 does not update with the additional cells formatted. I always need to close the userform and reopen it for the changes to take place.
I have a form (the main one) which accesses a second form, which accesses a third form. All forms have a combo box, control button and a text box.
The items selected in the control boxes are entered into cells (the base cells) in the spreadsheet, via “Control Source”. The text boxes access these cells and show the selected items, which are then copied to other cells via a macro on activating the control button in the main form.
The main form stays open while other items are selected and transferred. Some of the items may not be changed (reselected) as they may be common. The problem is that after a number of items have been selected and transferred, the base cells for the second and third text boxes do not update after a selection from the combo boxes, and they continue to show a previously selected item.
The problem can be solved by closing the 2nd and 3rd forms and starting again. What can I do keep the cells updating without closing the form down?
Within the ComboBox properties, is there anyway to control after "enter" his hit, you move to the right instead of down (similar to the edit under Tools/Options)?
I have created a userform within VBA which has a TreeView Control and a Spreadsheet control on it.
I have populated the TreeView control with data and what I want to be able to do is to drag the nodes off the TreeView control to the spreadsheet control.
I can drag onto a normal worksheet but not onto the spreadsheet control (the no drop mouse pointer keeps showing).
How do I determine which control the user is currently modifying on a multipage form (either changing, enterying or exiting the specific control). when I use "userform1.activecontrol" i get "multipage1" as the control name but I need the actual control on the specific active multipage. (also the .TABINDEX is for the multipage regardless of the on-page control) I use a generic data-field change SUBroutine so need the control name (and the TABINDEX) to provide my SELECT CASE. (so every fieldname_CHANGE calls the same SUB [with no parameters])
I am building a large Userform and I am going back to edit some of the controls (renaming, resizing, etc). The problem is, after editing, the changes don't stick. I can open another module and then open the form again and the changes will be gone. I can save Excel, close the file, and open it again, and the changes will be gone.
I'm concatenating data in 5 cells (Author, Year, Title, City, Publisher), one of which is in italics (Title). When using concatenate (or &) the formatting is removed, and I need to be able to retain that formatting.
Example: Col B Aaron, M. (ed) 1999 The Body's Perilous Pleasures. Endinburgh Edinburgh University Press
I have a textbox that displays text from another cell in the workbook. The other text has some sections in bold, but when it displays in the textbox it doesn't show the bold text - The code I'm using at the moment is below.
Private Sub UserForm_Initialize() Dim R As Long ComboBox2.List = Array("QuestionSet1", "QuestionSet2")
I need a solution so that each day I can get a value from a single cell but it appears in a new column each day.
eg, A1 contains a numerical value (based on a formula) Each day there is a new column, say, Monday = B1, Tuesday = C1 etc. On Monday B1 takes the value of A1 and 'freezes' the value in B1 On Tuesday C1 takes the value of A1 and 'freezes' the value in C1, but the value in B1 remains as it was when it was originally frozen.
I have a quantity column on an inventory sheet which automatically updates the available quantity based on sales from a sales sheet. But I need to know the date the quantity reached zero.
That date would always be "today," on the day the quantity = 0, but how do I make the date NOT update to "todays date" on the next day, and the next, etc. It needs to stay as the date that 0 qty was reached.
i am using the following code to put data into a worksheet which it does perfectly. once the data is put into the sheet it is saved. what i want to do next is to retain the data in the userform and possibly change one or two entries and put data back into the sheet to save again
Option Explicit Dim ans As Variant Dim MyArray(100, 4) Public MyData As Range, c, d As Range
Private Sub cmbAmend_Click()
Application. ScreenUpdating = False Set c = Range("b4").End(xlUp).Offset(3, 0) ' c selected by Find c.Value = Me.DTPicker1.Value ' write amendments to database c.Offset(1, 0).Value = Me.TextBox1.Value c.Offset(2, 0).Value = Me.TextBox2.Value c.Offset(3, 0).Value = Me.TextBox3.Value c.Offset(12, 0).Value = Me.ComboBox1.Value Set d = Range("b16").End(xlUp).Offset(1, 0)
how do you store formulas so that they stay in the cells when all info is deleted? so i can use the same spreadsheet every week but all i have to do is select all and delete. if i do it now i lose al my formuals.
I can't seem to get the Concatenate function to work in my macro when there is a combination of numbers and text. It works fine is there are no alpha characters. I am using this macro to format all of the data in column "A" to have 5 characters and be text. These values will later be used in formulas and Pivot Tables.
Sub Macro2()
Dim sinlen As String Dim sinformat As Variant Dim lastcell As Variant
I am programming some kind of database in excel and using comboboxes as drop down lists to enter some of the information in the DB. My problem is that when the file is saved, closed and then opened again, all of the comboboxes have lost their selection. I think that using the ControlSource might help but for some reason I can't find the proper syntaxe to make it works. Actually I am getting a Run time error 438: This object doesn't support this property or method.
I have included the relevant portion of my code below. Is the ControlSource property going to solve my problem? If so, what is the syntax I must use? If not, what can I do to make sure that my ComboBoxes are going to keep their selection?
ActiveSheet. OLEObjects.Add(ClassType:="Forms. ComboBox.1", Link:=False, _ DisplayAsIcon:=False, Left:=hori_offset - 220, Top:=vert_offset + 78, _ Width:=180, Height:=24.75).Select With ActiveSheet.OLEObjects("ComboBox1").Object .Font.Size = 14 .Font.Bold = True .Style = fmStyleDropDownList 'Use drop-down list .BoundColumn = 0 'Combo box values are ListIndex values End With With ActiveSheet.Shapes("ComboBox1") .OLEFormat.Object.ControlSource = "Q1" .OLEFormat.Object.ListFillRange = "M1:M8" End With
I have the following code which copies specified cells from one sheet to the next available row on another sheet. I would like to keep the next available row somewhere near center focus on the display. Can I use the variable 1Row to do this, or maybe 1Row plus or minus 20 depending on how I want it displayed on the screen?
Let's say that in column A I have numbers,"Yes" and "No". I want in column B to have only the numbers from column A, in the same order without any empty ranges, and everytime I add in column A a new number, column B to update automatically with that number. Let's have an example:
A B Yes 12 12 13 No 10 13 No 10 Yes
And if I want to add in column A: A B Yes 12 12 13 No 10 13 25 No 15 10 Yes 25 15
So the column be will update automatically. I already tried =IFERROR(INDEX($A$1:$A$10,SMALL(IF(ISNUMBER($A$1:$A$10),ROW($A$1:$A$10)),ROWS(B$1:B1))-ROW($A$1)+1),") but using this many times get's my file very heavy and the excel is working slow.