I am trying to validate a textbox (txtCode) on my userform to accept the following type of entry: AB/123/07. The centre set of numbers will change & could also be four or five digits long. I have searched & found several threads but none that solve my problem.
I have a simple function defined in one of my worksheets (Sheet1):
Function AddFuel(fuel As String) MsgBox fuel End Function
How would I be able to call this from a form button event?
Private Sub CommandButton1_Click() Sheet1.AddFuel(TextBox1) End Sub
Everytime I try running this code I receive the error: Run-time error '1004'; Application-defined or, Object-defined error. I've even tried Application.Run("Sheet1.AddFuel", TextBox1) but still no luck. I think this is a pretty common question but I couldn't find any answer to it on the forums.
I am trying to apply custom data validation for two cells. The first is data validation in cell B6. The only valid entries should be in mulitples of 100 (e.g. 100, 200, 300, .... etc). The second cell is B12. The only valid enteries should be any number above 100 and not = 100, 200, 300, .... etc). I tried using following formula in data validation for cell B6 but no luck. Couldn't figure out what to use for cell B12 =mod(B6,100)
I am trying to create a validation list, with its source data being filtered from another sheet of the same workbook. I also need to validate the drop list against some conditions in the source table.
Here is an example of the data am trying to create`(I want to create the droplist for the column Contract):
"Contract Definition" Sheet or Table: ----------------------------------- Company Contract Service Report End date: Status --------- --------- -------------- --------- ------ CompanyA ContractA1 Service 1 31/12/2014 Active CompanyA ContractA2 Service 2 31/12/2014 Active CompanyB ContractB1 Service 1 31/12/2014 Inactive
"Service Reports" Sheet or Table: -------------------------------- Company Contract Service Report --------- --------- ---------------- CompanyA ContractA1 Service 1 CompanyA ContractA1 Service 2 CompanyA ContractA2 Service 3
In the Service Reports Sheet, i want to create a list for each Contract, based on the specified Company and on the Status field, as defined in the Contract definition table.
I am trying to use Excel to create some XML output that is formatted specifically for an application that I have. The application expects to receive time data for two columns in hh:mm format, i.e. no seconds. The standard Excel data validation and also the XML time data type all expect hh:mm:ss.
In order to get around this, I have used string as the data type and I want to use data validation to check the user input conforms to hh:mm. I can't see how to write the formula directly, nor how to apply the validation formula to an entire column (as opposed to named cells or ranges), and although I could write a function using regex, I still couldn't use this because all the examples I can find relate to checking a specific named cell.
I have a worksheet that uses the INDIRECT function as part of cell validation to generate a custom 'name' range, this name then references a bunch of sheets that contain the actual range where the values for the validation list are stored. For example: ValidationExample.xlsx
Name = Color Values = Blue, Red, Green
Name = Shape Values = Square, Circle, Triangle
So what this allows me to do is in the first cell, I can define two options such as Color and Shape. Once one of these is selected, the next cell will have a formula for the validation as "=INDIRECT(A1)" then I will define two named ranges called 'Color' and 'Shape'. This will then show me the list of items in the cell based on previous selection. An example of this is attached to this posting above.
When the formula is written into the validation, an error message is generated saying that the formula will generate an error. Even with this message, the method works effectively to provide a blank list if nothing in the first cell is selected, or a list dependent on the selection of the first cell.
In this case, what I want to do is generate a macro that will populate the validation for a cell when new records are added. This won't always copy down from previous cells because the way I add records is through use of a macro and I generally find using the format painter in vba to be a fairly sloppy way of getting formats from other cells. So I go through a series of validation additions to each cell in the worksheet to get this validation created (I have no written this into the workbook attached).
VB: Dim i As Long Dim lastRow As Long Dim sht As worksheet
[Code] .....
As I read in previous posts, Formula1 cannot contain an actual formula, only names and lists of items. Since each of the cells will have a changing reference, thus the INDIRECT function would need to change to reflect this, The 'Secondary' name consists of the following:
Which of course does not work due to the error when using INDIRECT in the first place (though the Address() function appropriately finds the cell with the validation in it's appropriate address). I can think of other ways to do this, such as having validation lists change in with VBA on a SelectionChange or Change event, but that's a lot of code that is subject to change when the named ranges have changes to them (which is fairly frequent). Is there any way to get the .Validation.Add method to ignore errors in the name supplied to it.
For reference, my code is this:
VB: Private Sub cmdRefreshValidation_Click() 'Re-enters validation parameters to all cells to allow selections Dim i As Long Dim lastRow As Long Dim sht As Worksheet
I require a custom formula for in cell data validation of an 5 digit alphanumeric entry. The valid format is ANNNN (1 x alpha & 4 x numeric). Case of the aplha is not an issue.
I have a data validation in a cell that works like this : if a control cell has the value "F" it validates the input with some dates in a custom list, if not it does nothing.
The formula looks like this :
=IF(F2="F",datelist,"") It works fine but I also want it to display the drop down list when cell F2 = F, now all i can do is type a value and it checks if it's ok. Can I do this without using vba ? I will send this to other persons and I don't want the macro warning to pop up when they open it.
Is there a way to apply a custom validation rule to a drop down field in Excel (which itself is already using a validation rule)? Here is what I wish to do: I have a range of cells that can only pick up values from a list. I want to further apply a custom validation rule to these cells - display an error message when one chooses an element from the list that has already been used by another cell in the range.
How do I set up a custom validation formula to prevent duplicate enties?
For example I I've already enter the song name 19 and Paul Hardcastle (BandName), how do I set it up where I can not enter that combination again on a row?
I was wanting to use a custom CountIF function but I could not get it to work.
I have a TextBox on a UserForm in which the user should be entering a series of coma separated zip codes. (12345, 54321, 15243, ...) The number of zips to be entered is variable.
I would like to validate entry as the user types. My first thought is to use the change event and tell it that only numbers, comas, and spaces are allowed, but that doesn't do anything about ensuring 5 digits per zip or having a space after each coma.
Is there a Format function that would allow for a variable number of zips? What else might work?
I have four cells c1 thru c4. The SUM of these cells must equal 1. I want to display an error message "sum of cells not equal to 1.0" but only when data has been entered in all four cells.
For instance =SUM(C1:C4, "<>1") should display the error message. Is there a way to write the formula with an IF statement and still use data validation with error message box?
Assumptions: -Will ignore blanks -Error message "Sum of cells are not equal to 1.0" until values in all four cells have been entered, not after a value is entered in a cell. (validate expression after all four cells have values or blank)
Scenarios: c1 = .25, c2 is blank, c3 = .25, c4 = .50 TRUE no error message should displays c1 = .25, c2 = .25, c3 = .25, c4 = .50 TRUE no error message should displays c1 = .25, c2 = .30, c3 = .25, c4 = .50 FALSE error message should display after value is entered in c4 etc
What I don't want is for the error message box to display after .25 is entered in c1 because the user is still in the process of adding values. Can this be done using Data Validation in Excel 2010?
I have a userform used to input vehicle information. To prevent any errors, is it possible for data Validation to be set in a listbox to accept upto 7 characters (both numbers and letters)
I have a text box in which date will be entered. I am using the following code to validate and format the date.
Code: Private Sub txtTDate_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean) If IsDate(txtTDate.Value) Or txtTDate.Value > Date Then sDate = DateSerial(Year(Date), Month(Date), Day(Date))
[Code]...
I expected it to return error if the date entered is less than Current(System's) date. This is not working.
I have a useform with about 30 Text boxes for user input.
when the user exits the box I want a validation check routine.
I need to verify 4 things.
1. That the entry is numeric.
2. Thew at the entry is above the minimum.
3. The Entry if below the maximum.
4. Number of decimal places.
Since I have 30 boxes and will be adding more in the future I need a Subroutine. Here is what I have (I know it does not work - I need help with the syntax.
I am trying to validate two things for one TextBox and they somehow contradict each other:
Private Sub UserForm_Initialize() TextBox_today.Value = Date TextBox_today.Text = Format(TextBox_today.Text, "dd mmm yy") End Sub
Private Sub TextBox_expiry_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean) With Me.TextBox_expiry If IsDate(.Text) Then .Text = Format(.Text, "dd mmm yy") Me.Label_expiry.Caption = "expiry as date:" Else Cancel = True.................................
Also, what other date formats I could use besides "dd mmm yy?"
i am using this code which was provided by a kind ozgrid member
If Not IsNumeric(Me.txtLength.Value) Then MsgBox "Use numbers only", vbCritical, "Numbers Only" With txtLength .SelStart = 0 .SelLength = Len(txtLength) End With
unfortunately it will not allow me to use a decimal point EG: 2.5. allow a deciaml point?
I am trying to make validation so a textbox in a form can only accept only letters. At the moment however i can only seem to stop it entering numbers on its own, i cant stop it from accepting letters and numbers. here is the code so far. (please try keep the code simple as possible i have seen more diffuclt solutions but they are to difficult)
Private Sub LetterVal() 'Validation to ensure only Letters may be entered into the text box. If IsNumeric(Textbox1) Then Textbox1.BackColor = &HFF& MsgBox ("Only letters aloud in field") Else Textbox1.BackColor = &H80000005 End If End Sub
I have a user form to get some input from the user and want to make sure that in some textboxes user should be able enter only text i.e A to Z or a-z no numbers or special charecters.
Private Sub CommandButton1_Click() Dim RegEx As Object Dim Strng As String
Strng = CStr(Me.TextBox1.Value) Set RegEx = CreateObject("vbscript.regexp") With RegEx .Pattern = "^[A-Z]{2}/d+/d{2}$" If Not .test(Strng) Then MsgBox "Invalid Format: TextBox1" End With Set RegEx = Nothing End Sub ..............................
I want one procedure that will validate the CURRENT textbox (not named by name, to allow for the procedure to be included in the change event of several different textboxes), to see if it is numeric (decimal places allowed) in Excel 2007.
I followed the instructions here: {url}, which describe exactly what I want to do. So I put the final procedure listed on that page (the dynamic validation code) into the private module of the user form object as listed below:
Private Sub pipes_Change()
OnlyNumbers
End Sub
Private Sub OnlyNumbers() 'This procedure checks to see if the value 'of the current textbox is a number or not
If TypeName(Me.ActiveControl) = "TextBox" Then
If Not IsNumeric(.Value) And .Value <> vbNullString Then
MsgBox "Sorry, only numbers are allowed."
.Value = vbNullString
End If
End With
End If
End Sub
I then ran the form and typed a number into the "pipes" textbox that had been validated. A compile error is thrown: "Invalid or unqualified reference", highlighting the ".Value" portion of IsNumeric. I tried to remove certain parts of the code, such as the IF statement and the "And .Value <> vbnullstring", but nothing works. I have a feeling it is because this code was created for Excel 2003 (though I'm not certain).
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:
This is the code where you click on a cell that has been input from Data Validation, it gets a pop up textbox showing the text input. One drawback I see here is that when the sheet is protected, one needs to tick 'Edit Objects' in 'Allow all users of this worksheet to:' window to get the textbox to pop-up otherwise no textbox is shown.
So this leads to the accessed user to have the ability of deleting and moving the textbox in the protected spreadsheet. Do you have any idea to Protect the sheet, Get the textbox to pop up, Disallow user to delete/move the textbox.
As part of a UserForm I am Validating and Formatting in one pass. The problem I'm having is that when the Validation fails, I get the error message, and the focus moves on to the next text box.
I want to trap the user in a loop until they have acceptable data
I 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'm trying to make a converter between about 8 various types of values. These are not units like Km or miles or something like that, but rather numbers that represent a specific "hardness value" on a variety of scales (to name a few: HRC, HRA, K)
What I've been doing so far is plotting the two types against eachother and then getting the best trendline I can so that I can use that formula to convert between the two with relative certainty. (for example, when plotting HV vs HRC my fourth order polynomial trendline with an Rsquared of 1 is y=0.0001x4 - 0.0188x3 + 1.0768x2 - 20.709x + 350.69)
My questions comes up where I was hoping to make a window or box of some sort allowing the user to input a numeric value, then selecting the Input units and the hopeful output calculated units, and have the box spit back to the user the conversion.
I want to be able to create a range of VBA userforms to quickly perform long tedious tasks. I want these userforms to be accessed from a nice tidy toolbar.
I have done this and it looks nice and works well. What I would like to be able to do is have my custom toolbar of userform controlled functions be transferable so that if someone else wants my toolbar and attached functions they can install it easily much the same way you can do with an add in.
Is this sort of thing possible or does it require them to manually install all my userforms, modules and toolbar? If it is possible what sort of things should I be looking at?