Validate Cell Value Against Range Or Array
Apr 18, 2007
I would like to use VBA to validate the data in an Excel worksheet against either a named range or an array of valid data.
The valid data comes from an accounting system. It is a list of customer numbers. I am using ODBC and SQL to get the data into an array and then into a named range. This is working fine.
I want to validate the customer number column in my source Excel worksheet against either the array or the named range.
There are a variable number of lines in the source data.
I have a VBA procedure which starts at cell A2 and then works down column A until it reaches a blank cell.
I would like to use a VBA formulae which does something like:
IF active cell offset (0,3).Value in (named range or array)
Then set cell colour for active cell offset (0,3) = Green
Else set cell colour for active cell offset (0,3) = Red
End If
Or something like that.
Can this be done using VBA? Or do I need to create a new column in my source data and use VBA to place a VLOOKUP based on a named range into this new column?
View 9 Replies
ADVERTISEMENT
Apr 28, 2009
I have been trying to figure out how to use a named range (on another sheet) to validate the user entered data in a specific column. All my attempts at utilizing worksheet_change event have ended in errors. I've created a simple workbook that shows what I'm trying to do and have attached it to this message. The 'Sample (Data)' worksheet has the data table that would be completed by the user. On the 'Validation' worksheet I have named the range to be used to validate the data as 'rngVal'. So when something is entered under the 'Expense Type' heading, the code would verify that the value entered was contained in the 'myVal' validation list. If it was not present in the list, a msgbox would instruct you to try again. After stealing bits of knowledge and code from many of the posts on this site I cobbled together the following (which results in an error at the 'set rngFind' line):
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngFind As Range
'Set Target = Cells(ActiveCell.Row, ActiveCell.Column)
Set rngFind = Range("rngVal"). Find(Target.Value)
'If data in column C changes, do the following
If Target.Column = 3 Then
'If the value is found on the validation list, do nothing.
If rngFind Is Nothing Then
Else
MsgBox "You must enter one of the following in this cell:"
With Application
.EnableEvents = False
.Undo
.EnableEvents = True
End With
End If
Else
End If
End Sub
View 6 Replies
View Related
Dec 20, 2007
Can anyone help me to get a validation to check that what is entered in a cell, lets say A1,
has to be number between 100000 and 899999 (this I already have) OR a value/text from I100000 to I899999. So it only acceots a vlaue betwwen 100000 and 899999 and it is also ok to have the letter I at the begining.
View 9 Replies
View Related
Dec 7, 2007
I have a VERY complex custom data validation formula that is getting crazy. I thought it might be easier to use a user defined VBA function to handle it, but was unsuccessful.
I was able to write a VBA User Defined Function & use it within my spreadsheet to derive the value of another cell, as follows: =IF(OR(ISBLANK(B12),myValidation(B12)),"OK","NG")
I tried using it as a Custom Data Validation on the cell itself (=myValidation(B12)), and I get an error: "a named range you specified cannot be found".
Can the function be used in this way or could someone suggest another way of handling this?
View 6 Replies
View Related
Jun 28, 2007
I am creating a userform, and in this form I have two text boxes and four radio buttons. For one of the text boxes, the user is to insert a number. I have to make sure this number is not already in a range in the workseet. How can I make the userform not accept numbers in a text box that are already in the range in the worksheet?
View 2 Replies
View Related
Mar 19, 2008
I would like to " Validate Data In A Vertical Column To Not Allow Non Consecutive Numbers Less Than 100"
756415
10
456132
7
456123
12
The above is a valid list. Below would be an invalid list:
756415
10
13
456132
7
7
456123
12
13
This part of a larger scope, but I have a macro that will crash if the data entered is entered by way of the invalid list, it works perfectly with the valid list. I am limited to one column user's will input the data via a Barcode scanner that after it recieves input it enter's a "Hard" return. This is a warehouse pickticket program, user's scan their ticket id's (numbers greater than 100000) and then the number of lines on the ticket (usually not greater than 15)
View 2 Replies
View Related
Apr 7, 2009
I would like to simply validate the value entered to a cell against cells of a number of columns. I’d like it to return a vlue to be able to report it in another cell as below. (had to cmma separate the columns, can't get them aligned in this editor)
A, B, C, D, Q, R
1, b, 1, 2, 1, existing
or
A, B, C, D, Q, R
1, b, 1, 2, 5, not existing
So the user enters a value in cell Q to check against the other columns and return a value to R. Additionally, the cells to be validated (A - D) may contain more than one character, i.e. cell A could = 1b2.
View 4 Replies
View Related
Feb 1, 2010
The code below automatically displays the validation when I select the cell. But I would like the cell validation only display when the cell is empty. If the cell has data in it, then do nothing, but if the cell is empty, then display the validation.
If Not (Nothing Is Application.Intersect(Target, Range("B9"))) Then
SendKeys "%{down}"
End If
View 9 Replies
View Related
Jan 4, 2009
I need the array portion of a lookup formula to change based on a cell value.
On a worksheet(named "groupings")that groups students according to ability level, I have data validation lists where teachers select the criteria for the group. In cell I5 they choose the period, and in cell L5 they select which assessment to look at.
Cell B8 will either say high low or medium. Then in cell C8 I have this formula: Lookup_Occurence($B$8, ??????, 1,1,2)
Again the array will depend on what is entered in cell I5 and cell L5.
I have attached one of the worksheets the lookup_occurence will be referencing. In this exit card worksheet if cell B10 (the name of the assessment) matches what the teacher chose in cell L5 on the groupings worksheet, then the array formula will be 'Exit Card'!Card1. If cell G10 matches what the teacher chose in cell L5, then the array would be 'Exit Card'!Card2. Where A9:C339 is named Card1 and cell F9:H339 is card2 etc.....
However, it gets even more complicated then that because within Card1 there are 8 periods, and if a teacher chose period 1 in cell I8 on the groupings sheet, then I only need the array to look at the period one data in the card1 array.
Essentially what I am trying to accomplish is create a page where teachers can group students by ability level according to any assessment they choose. On the exit card page the formulas currently equaling # Div/0 will say either high, med, or low depending on how a student performs on that assessment.
View 9 Replies
View Related
Aug 10, 2009
I've been struggling with this for a little while today and quite can't seem to figure it out. I have a range --- A6:A28 --- where a user will enter a percentage. The total should add up to a 100%, which is in cell A30.
My understanding is that a need a worksheet_calculate function to tell users to revise their entries if the results in a cell A30 are either less than or more than 100%. This is the simple, non-working procedure I have now:
View 4 Replies
View Related
Jun 25, 2013
If I have a cell "C8" default value is "choose" and it is a drop list of other values. I want to validate if "C8" is populated with a value other than "choose" that the user populates the SOME of other cells in the row like D8 or F8? I would like to alert something that the cell needs to be populated.
View 1 Replies
View Related
Jun 21, 2008
How can I validate a cell to get only text and undescore?
Not any other special characters, like space, @#$%^&*()+!~
View 9 Replies
View Related
Nov 2, 2009
Cell C10 contains 2 possible values, "CLIENTS" or "INDIRECT"
These are also the names of 2 dynamic named ranges
I am trying to use a COUNTIF to validate a subsequent cell, checking if the contents appear in the original list.
=COUNTIF(INDIRECT(C10),D10)
Checks to see if the value entered into D10 is within the dynamic named range, the name of which is entered into cell C10
Gives me a #Ref error
View 9 Replies
View Related
Aug 14, 2006
I have a sheet which in a certain cell (H4) must contain either an "I", "J", "R" or "S" in upper case.
The user fills in the sheet, and then a macro runs that does lots of things. I have been asked to put a bit of code at the start of the macros to validate the contents of cell H4.
However it doesnt seem to work, particularly the isempty statement
Sub SiteVal()
'
' SiteVal Macro
'
If ("H4") = "S" Then
Else
If ("H4") = "I" Then
Else
If ("H4") = "R" Then
Else
If ("H4") = "J" Then
Else
If IsEmpty("H4") = True Then
MsgBox "Site code must be input"
Exit Sub
Else
End If
End If
End If
End If
End If
'
End Sub
View 4 Replies
View Related
Aug 22, 2007
I have a column which is formatted to custom [hh]:mm but could also have the following text entry "NWD", which is either the hours a member of staff works or Non Working Day.
I tried using a data validation list with **:** and NWD, but it recognises the **:** as exactly that.
View 6 Replies
View Related
Jul 25, 2012
I want to know how to copy a range into an array then an array back into an range.
Code:
Dim a(3,3) As Double
a(3,3) = Range("C3:E5")
Range("C10:E12") = a(3,3)
View 1 Replies
View Related
Mar 31, 2009
I have 2 lists and I want to validate a cell to only allow items in List1 or list2 or A numeric value.
List1
D1
D2
D3
..
D10
..
Dxx
List2
Hol
Off
Sick
These lists may changein length and number of items
the second part, is can you valudate based on other values in a column, basically I have a list of names of available operatives, and I want to make sure each name can only be entered once in a column! Would be even better if I could get a dropdown which showed the remaining choices!
View 3 Replies
View Related
May 21, 2014
Userform that people use. I need validating the users input into the form.
1. Need to validate that A1 only has 3 letters (Alpha)
2. Need to validate that A2 is not left blank
3. Need to validate A3 has only 10 digits
My state is that when the user hits the submit button in the user form the macro checks for these validations above and if everything is ok emails the sheet. However if the user havent inputed the data correctly a msg box will pop to let them know what is wrong. If thats the case i do not want the sheet emailed. below is the email code i'm using
HTML Code:Â
Sub SendMail()
' Copy the sheet(1)
ThisWorkbook.Sheets(1).Copy
' Send Email
.SendMail Recipients:=Array("email.address@email.com"), Subject:="Test" & Format(Date, "dd/mmm/yy")
.Close SaveChanges:=False
End With
End Sub
View 2 Replies
View Related
May 30, 2008
excal VBA programming.I have attached the file name "help" for your easy explanation purpose.
1. Is it possible to hide sheet nos. 1,2,3,4 & unhide the sheet as wished by me by puting the value (1or 2 or 3 or 4) in B3 cell.
2.There are per day production rate in E18 to E22 cell. Now whenever I will give value in H18 or H19 or H20 or H21 or H22, it will check whether the value is same with the respective E 18 or E19 or E20 or E21 or E22 cell. If both the values are not equal then give a message box "WARNING!!! YOUR VALUE IS NOT SAME". Can it be possible by creating VBA programming.
View 5 Replies
View Related
Sep 20, 2007
i have a data validation problem is there a way i can use =INDIRECT(DEC!'Ai11>DEC!'AJ11) is this correct? when the cell in dec AI11 is greater than AJ11 i need a validation stop to take place
View 9 Replies
View Related
Oct 14, 2009
I have an Excel workbook which contains data entry fields, which have different types of data validation rules - like Lists, Date, Whole Number.
I do not want end users to remove these data validations as well as the formatting of these cells by doing copy/paste. So, I have implemented techniques mentioned in the following post, and elsewhere - to override the paste functionality and implement PasteSpecial values automatically.
[url]
To keep it simple, I'm only supporting pasting a single cell at a time.
Now my problem is this:
Doing the PasteSpecial values programmatically doesn't prevent the user from pasting values in the cell that violate the data validation rules. So, I can paste a string into a cell having data validation as Whole Number, or a invalid string into a cell having data validation as List.
The following post just suggests disabling paste whenever data validation is present:
[url]
But I would like to allow the paste operation if the value being pasted is a valid value for the cell's data validation.
View 9 Replies
View Related
Aug 14, 2012
I have a input box that prompts a user to enter a date of a new month - it has to be the 1st of a new month. I have validation that it is a date that has been entered but then i want to validate the date entered is a month ahead of a date in a cell range on a sheet.
It is a monthly reset so it has to roll on from the previous month.
Here is what i have currently but it isn't working.
Code:
' Get user to input the first day of the new month to populate all dates with
dNewMonth = InputBox(Prompt:="Enter first Day of the new Month. Must be the 1st of the Month e.g. 01/10/2012", _
Title:="Enter Date")
' Validates the entered date is a valid date
If (IsDate(dNewMonth) = False) Then
[Code]...
View 1 Replies
View Related
Nov 15, 2007
=CORREL(C1:C10,C12:C21) at H1
=CORREL(C1:C10,C23:C32) at H2
=CORREL(C1:C10,C34:C43) at H3
etc
can i have a macro that first array remain the same, and second array always 11 cells added. drag it down also can
View 9 Replies
View Related
Mar 13, 2008
I have a cell (B2) I would like to apply multiple data validations to.
I know I need to use the custom formula option but don't know how to write the formula.
I don't even know if it is possible, but here is what I'm after
I need to make sure the cell is 4 digits long
I need to make sure the cell starts with a zero (Because the cell starts with a zero I have it as a text cell)
I need to make sure the 2nd number is not 0 if A2 begins with 5 (A2 is also a text cell).
View 6 Replies
View Related
Oct 31, 2008
I have data in a spreadsheet that I would like to send to another sheet as follows:
Use the values in the range $D$2:$D$12 and $F$2:$F$12 to reference the column and row of a cell and the values in the range $G$2:$G$12 to reference a specific group of cells on another sheet into which would be inserted the value found in the range $C$2:$C$12. The best I have come up with is to place a formula in each of the cells in the second sheet that would state:
IF a value in the range $D$2:$D$12 matches the column # of the current cell AND IF the corresponding value in the range $F$2:$F$12 matches the row # of the current cell AND IF the corresponding value in the range $G$2:$G$12 matches the region of the current cell THEN the value of the current cell EQUALS the value of the corresponding cell in the range $C$2:$C$12.
I think this will work but I don’t have enough knowledge of Excel to write this formula.
View 9 Replies
View Related
Jun 9, 2009
This code works!
Dim rTmp As Range
Dim aTmp As Variant
Set rTmp = Range("A1:D21")
aTmp = rTmp.Value
Range("A1:D21") = aTmp
If you exchange Range("A1:D21") with rTmp.value it does not, why?
This code doesn't work?
Dim rTmp As Range
Dim aTmp As Variant
Set rTmp = Range("A1:D21")
aTmp = rTmp.Value
rTmp.Value = aTmp
View 9 Replies
View Related
Dec 6, 2007
We have an internal web site that has files I need to download daily. The filenames have date strings in them. I've setup some formulas to make the url based on the NEXT dated file I need to download.
And I don't have direct access to the drive the files are stored on, I can only get them through this web site.
Right now, I have individual macros for each file I need. They'll follow the url and download the file if it's there, or return a message to me if it's not. But there are several different files. I have to run each macro one at a time, at different intervals during the day until they get downloaded.
Is it possible to make a macro loop through all the URLs (I have them stored on a sheet, called "FileDownloader" in Range G2:G10) and check if the URL's are valid (without actually attempting to download the file). I can then make some kind of dashboard to tell me when the files are ready for download.
View 9 Replies
View Related
Feb 7, 2014
Attached file should be self-explanatory.
I want to be able to set sum range using lookup or match.. For example if I change B2 value to Nov-13, I want it to sum column K.
View 5 Replies
View Related
Jun 19, 2014
I have a table that looks like this:
| A | B | C | D | ...
1 | fu | bar | lab |...
2 | rab| uf | luv |...
3 |...
All of my values are within the Range "A1:C2"
I would like to have a variant array which contains the addresses of this range.
Things I tried that didn't work:
If my variant is V and my range is R,
v = r returns an array which contains
fu|bar|lab
rab|uf |luv
V = R.Address gives me
A1:C2|A1:C2|A1:C2
A1:C2|A1:C2|A1:C2
What I actually want:
A1|B1|C1
A2|B2|C2
i know this can easily be done with a loop, but the table I want to use this on is huge, and a loop takes hours to execute.
View 1 Replies
View Related
Dec 29, 2008
Hi all, starting this as a new problem because it's so far different from what I was originally talking about; but this does relate in part to my previous thread.
Anyway. I'm trying to set an array to set Range objects so that I can define each one as a seperate With block. Here's what I "know" when starting out.
I developed the following. I keep thinking it should be multidimensional but my sleep deprived brain came up with this instead. The problem is, it's throwing a 1004 Method "Range of object '_Worksheet'" failed at the With statement.
View 6 Replies
View Related