Loop Through Sheet And Match Entries On Userform To Non-empty Cells In Sheet
Oct 27, 2012
In the attached worksheet I have UserForm2. When I click on open compare form button on the menu sheet it opens UserForm2, I would like the information I select in the first 7 combo boxes Vegetable - Ball on UserForm2 to loop through the data in the database sheet Columns A:G and compare the entries to the non empty/not blank cells in each row. If the form contain data that matches all the non empty/not blank cells in a row in the database sheet then it is a match and should show the label and display the message. If the form entries does not match to the non-empty/not blank cells in any of the rows on the database sheet then do nothing.
The problem I am having is getting it to loop through the sheet and bring back the right results. It is only matching on row 2 of the database sheet when I select cabbage in the vegetable combo box and apples in the fruit combo box . I cannot figure out how to get it to loop through all the rows for the range I want to compare (A2:G7) - I need this range to be flexible so as data is added it will expand to read all added rows.
The code is on the btnSave_Click() for UserForm2
I attached the spreadsheet and I am explaining what I want to do and the expected result.
Fruit
Fruit Type
Vegetable
Games
Toys
Cereal
Ball
[Code] .....
What I want to do is loop through the Database sheet and if the fields on the form contain all the values in any row of the Database sheet, excluding empty cells in the Database sheet, then display a message.
So if on the form I selected Broccoli fron the vegetable combo box, Cricket from the games combo box, puzzles from the toy combo box, bananna from the fruit combo box, grits from the cereal combobox, and baseball from the ball combo box, in the databse sheet tabel shown above the match would be row 6 since the values for vegetable, game, toy, fruit, cereal and ball on the form matches what is on row 6 of the Database sheet. It does not matter what other fieds are selected /filled in on the form, the match should only take into consideration the populated cell in each row of the database sheet.
So, if the user enters Apples in the fruit combo box and Cabbage in the vegetable combo box but had blank or something other than bike in the toy combo box on form it would be a match to the Database sheet row 2, regardless of what the user enters in the remaining fields on the form
If the user enters Berries in the fruit combo box, Blueberry in the Fruit Type Combo box, Carrot in the vegetable combo box, and Grits in the cereal combo box it would be a match to Database sheet row 3, regardless of what the user enters in the remaining field on the form .
If the user enters Apples in the fruit combo box, Cabbage in the vegetable combo box, and Bike in the toy combo box on form itwould be a match to the Database sheet row 5, regardless of what the user enters in the remaining field on the form .
If the user enters Grape in the fruit combo box, Carrot in the Vegetable combo box, Cards in the game combo box, and football in the ball combo box on the form it would be a match to Database sheet row 7, regardless of what the user enters in the remaining field on the form.
If the user enters Kiwi in the fruit combo box, Cabbage in the vegetable combo box, and Bike in the toy combo box on form it would NOT be a match to the Database sheet because the Database sheet does not have a row that contain Kiwi, Cabbage, and Bike.
So basically, if the entries on the form match the exact values for all the non-empty (blank) fields for any row in the Database sheet, then it is a match.
-If the entries on the form do not contain an exact match to all the non-empty (blank) fields for any of the rows in the Database sheet, then it is not a match.
-If it is a match show the label and display the message box
-If it is not a match the do nothing
View 2 Replies
ADVERTISEMENT
Apr 2, 2008
I am trying to create a macro so that when i save an entry the form sheet looks in the tavela master sheet to see if there is a match on the record number (in the A column) and saves there as an update if it matches and then if there is no match, saves it in the last empty row. this is a column to row copy so it has to be paste special to transpose. also i have a password on the sheet which i use to unprotect then reprotect. i have successfully done these two things separately but cannot combine them! i know not very much about visual basic code just what i have read here and so i am trying to make this code work.
Code:....
View 9 Replies
View Related
Apr 28, 2014
I have userform1 where new data is inputed.
Userform2 is used for Edit purpose.
Both work fine.
I have Label which is visible if date in textbox is less than TODAY()..... ( which is textbox28).
Following is the code:
It will not work correctly due to date format of textboxes & cells??? Tried to resolve it but no success yet.
View 2 Replies
View Related
Sep 19, 2008
I'm trying to Count the number of Entries on a Sheet that match an Hour. Looking through the availiable functions i found COUNTIFS, which is exactly what I want. However, when I try to compare the Hour values within the COUNTIFS arguments, there is an error.
This is the function that I figured would work here:
=COUNTIFS(HOUR(Sheet1!G:G), HOUR(E6))
which should count all entries in column G where its HOUR matches the HOUR in E6 (all are time format). I do realize that in the example above there is only one comparison made and i'm using COUNTIFS instead of COUNTIF, but i'll be adding other comparisons to it once i get this first comparison working.
View 9 Replies
View Related
May 9, 2012
I have a userform that has Label 1, textbox1 and textbox2 at the top. (I shall call it HEADER)
Then, arranged in a row i have combobox1, textbox4, textbox6, textbox7 and label7 (I shall call LINE1)
On a row beneath this i have combobox2, textbox12, textbox14, textbox15 and label 10 (I shall call LINE2)
I need a way of finding the first empty row on sheet 1 (easy bit) and then putting the info from the HEADER and LINE1 in the first empty row, then HEADER and LINE2 in the next empty row etc etc. There are 5 rows in total
View 7 Replies
View Related
Jun 28, 2006
I have included the table. What I want to do is in a user form pick a county ie Devon, Then by clicking "go" all entries that contain "Devon" are then copied to a " sheet 2" I don't want to use the Ctrl-F
View 2 Replies
View Related
Oct 22, 2007
I have some experience with excel, but until now have not ventured into VBA and macros.
I have a workbook which will have the following sheets:
1.Absence Summary sheet - Summarises data from each employee's individual sheet.
2. Template Sheet - A sheet formatted as an absence record sheet, but without data.
3. Individual employee Absence record sheets - Based on the Template sheet.
I have read with interest the various posts and help files on User Forms & Macros, but have got a bit stuck.
My Aim: ....
View 11 Replies
View Related
Jul 13, 2009
I need a macro that can search a sheet for a match and then copy all 7 cells to the right of the match. I have attached an example of the sheet that will serve as the database to search, and a userform example that will be similar to the userfrom that will display the copied cells when a match is found. I plan to copy and paste the 7 cells to a different sheet so that the userform can display the results with the control source property. I do not need a way to add to this database. I know very little about searching a database so.
View 6 Replies
View Related
Feb 1, 2012
I am trying to make a simple invoicing sheet that once populated by clicking a button and running a macro, will pick data from various cells, copy and then paste to another sheet in the workbook.
I have for the most part done this, however I need the macro when pasting the data to the other sheet, to be able to paste it in the next blank row.
This is the current code:
VB:
Range("H19").Select
Selection.Copy
Sheets("Sheet4").Select
[Code]....
Its quite lengthy as its referencing one off random cells around the first sheet.
how to paste to the next blank row?
View 7 Replies
View Related
Aug 24, 2009
I got the following formula to get data from the "data"-sheet into the "werkblad"-sheet. If the regarding cell on the "data"-sheet is empty the result on the "werkblad"-sheet will be "0"
View 2 Replies
View Related
Apr 16, 2014
I need to move the rows from one sheet to another sheet upon clicking the ‘Submit’ button.
I will manually update my efforts in ‘Sheet 1’ and when I click ‘Submit’, it should “copy” the rows to the next sheet (Sheet 2). However, it should not duplicate the entries irrespective of clicking Submit multiple times. Obviously, while clicking ‘Submit’ it should check the entry for that particular employee name and date in the ‘Sheet 2’ and remove that completely and update the new entries and this should avoid duplicates for that date. Every time when I add new entries for a different name and for dirrerent employee, it should keep appending the Sheet 2.
In addition, it should avoid copying the blank rows from Sheet 1 (S. No column will not be blank usually) to Sheet 2.
All this should happen upon clicking the Submit button.
View 9 Replies
View Related
Jun 26, 2009
I got my invoice and my journal. Once I finish my invoices I send all to the journal, but I am having a little problem.... Here is my code
View 2 Replies
View Related
Jun 2, 2014
I want to do is add data into Sheet A each day then press a button which will copy the data in a range and paste it into Sheet B, but I want to create a list of all data so I need it to find the next empty cell and start the paste from there (if that makes sense).
I want it to create a data base on one sheet from a daily import, I have a code to copy one cell to next empty cell but dont know how to duplicate it to a range.
I hope I have given you enough info this is what I have done so far
Public Sub CopyData()
Dim ws As Worksheet, bi As Byte, vData(1 To 1)
Set ws = Sheets("A")
For bi = 1 To 1
vData(bi) = Application.Choose(bi, ws.Range("A1"))
[Code]....
View 7 Replies
View Related
Jun 25, 2012
I am looking for a Macro which can transfer data from sheet 1 to the first available empty row on sheet 2.
For example, I have data in the following cells on sheet 1: B2, B4, B6, B8, and B10. I want to transfer this data to the first available empty row into cells A1, B1, C1, D1 and E1 of sheet 2. The cell number is ofcourse depending on the first available empty row and could thus be 2, 3, 4, 5 etc.
I also want to delete the data from the original cells in sheet 1 after the data has been transferred.
View 8 Replies
View Related
May 28, 2014
I'm trying to write some code that links to certain sheets if certain cells are clicked. My sheets are named "01", "02", "03", ... , "20", ... "XX". I'm hoping I can use some loops to reference the names of the sheets since they are in a number format, but "j", which is how I tried to link cell rows with a corresponding sheet, in the code below doesn't cooperate. fix this or can you simply not reference sheet names this way?
If ActiveCell.Column = 4 Or 5 Then
For i = 5 To 7
j = i - 4
If ActiveCell.Row = i Then
Sheets("0j").Activate
Exit Sub
Else
End If
Next
Else
End If
View 3 Replies
View Related
Feb 20, 2014
I work for one half of a joint venture & am responsible for planning & expediting. The other half does purchasing. The bi-weekly PO download reports I receive are less than useful. I have already written the code to delete undesired sheets & add, format, and enter headers for a "Summary" sheet.
I need code to move to the next row, and run formulas to pull data from the next sheets, and repeat until there are no more sheets.
The number of sheets will vary from one download to the next, and the sheet names will vary from one download to the next.
Following are example formulas that need to be run on successive rows while pulling from successive sheets.
I am running Excel 2013 on Windows 8.1
View 14 Replies
View Related
Nov 1, 2013
How can i get this code to run through each sheet and place the value of the sum on its respective sheet in the same positon .....
Sub maths()
lr = Cells(Rows.Count, "E").End(xlUp).Row
Range("E" & lr + 1).Select
ActiveCell.Formula = Application.WorksheetFunction.Sum(Range("E2:E" & lr))
Selection.NumberFormat = "[h]:mm:ss"
End Sub
View 1 Replies
View Related
Dec 24, 2013
I want to do a loop where you can copy say A3 worksheet 1 then add another sheet naming the work sheet "A3" then copying A3 worksheet 1 to A1 "A3". After that looping to A4 to a new work sheet naming the work sheet "A4"copying the value to A1 "A4", etc...
Is there a simply way of doing this loop? I can probably fit my other coding into the structure.
View 4 Replies
View Related
Jul 23, 2012
I have 2 workbooks in Excel 2010, each contain just 1 sheet. (see attached) I need to compare on sheet 1, cell D1 and column A:A (this column will be much longer), with the data in columns C:C & A:A on sheet 2, if a corresponding match is found, the data contained in column D on the same row on sheet 2 is written to the cell with the matching data in sheet 1.
My attempt is in cell D2 on sheet1.
View 5 Replies
View Related
Jan 11, 2007
see attached workbook. I want VBA to insert an index/match forumla on sheet 1 to lookup a value from sheet 2. I don't want it to specify a range though. I want VBA to look to see if there is data above and to the left of the cell and if it is true insert the index/match formula. Then it won't matter what row or column I put the headings in.
View 2 Replies
View Related
Oct 19, 2012
I am trying to compare two cells and if they match then I want to fill in a list on sheet one from sheet two.
I have the absolute working when I compare one cell to one cell, but I can't get it to compare one cell to a range of cells (two weeks of days)
Here is the absolute one I have working:
=IF(C1='Data Sorted'!A1,'Data Sorted'!A2,"")
Here is what I tried that doesn't work:
=IF(C1='Data Sorted'!A1:N1,'Data Sorted'!A2,"")
View 6 Replies
View Related
Apr 8, 2008
I have to match table column name with the column name in the sheets and get the values from column 6 in sheet2 if "# of values" in sheet1 matches with "Counter" of sheets for the same column.
if ("Table Column Name sheet1"="Column Name sheet2" then
if("Counter sheet2"="# of Values sheet1" then
return "Total # of rows Sheet2" from same row.
I am using Excel 2003.
Sheet 1 ....
View 10 Replies
View Related
Feb 16, 2008
I have a list box that I'm using to pull customer information from my "Customer" sheet to my "Invoice" sheet. I can actually open, select, and close the userform. However, I can't get the macro to put the information into the specified location on my "Invoice" sheet.
Here's my code so far:
Private Sub Cancel_Click()
Application.ScreenUpdating = False
Unload Me
End Sub
Private Sub customer_Change()
End Sub
Here is the "Customer" sheet I'm pulling the info from:
And here is the location on the "Invoice" sheet that I'm trying to direct the userform to:
And here's my userform just for reference:
The userform works perfectly until I press the OK button. That's when I get the error.
View 9 Replies
View Related
Dec 6, 2006
I have a lottery pool in sheet 1 in which i have the names of the people and their number picks. In sheet 2 i have the lottery results.
All i want is to be able to highlite(adding a backround color in the cell) to the matching numbers in sheet 1.
View 9 Replies
View Related
Apr 18, 2009
I want to be able to copy a name from one sheet (Available Players), paste it to a cell in another sheet (Round 1 through Round 20). The cell that will be copied is fixed but the place where it will be pasted will be different and may be on a different sheet.
also i would like to change the color of the copied cell to "greyed" out or cut if it can not be greyed out. I have created a button and put in a macro that i created but have been having problems with it, generic 1004 errors that i can not figure out. i am attaching the document.
View 8 Replies
View Related
Dec 12, 2012
I've got a User Form that works perfectly. It's activated on Chart Month sheet, you enter data into it and it switches to Comments sheet and copies the data, before returning back to the Chart Month sheet.
I have now added the same functionality to Chart Week sheet. Both Chart sheets use the same comments data, so it doesn't matter if you run the User Form from Chart Month or Chart Week. However, when I run the User Form from Chart Week then it switches to the Chart Month sheet once it copies the data, as I have Chart Month in the code. How do I get it to return to the sheet that it was originally on ie either Chart Week or Chart Month?
Code:
Private Sub CommandButton1_Click()
Dim emptyRow As Long
'Make Sheet30 Active
Sheets("Comments").Activate
'Determine emptyRow
emptyRow = WorksheetFunction.CountA(Range("D:D")) + 1
[Code] .........
View 4 Replies
View Related
Dec 4, 2012
I have a userform in my workbook with a button to access it on twenty different sheets in the workbook. Currently the userform will only populate the sheet titled "Blank1". How can I change it so it will populate the active sheet without naming it? So no matter what sheet I'm on when I hit the submit button the userform will populate only the sheet I selected the button on? See macro below.
Code:
Private Sub OKButton_Click()
Dim NextRow As Long
Sheets("Blank1").Activate
' Unprotect Sheet
ActiveSheet.Unprotect
[Code] ..........
View 2 Replies
View Related
Jun 27, 2014
Column 'N' and 'O' will be used for inputting information and will never be hidden
Column 'E' through 'F' hold information, however the user will have hidden all but one of columns 'E' through 'F' before running macro
Once the user initiates the macro, the program will detect which column in 'E' through 'F' is not hidden
The macro will then start at row one of the unhidden column and loop down looking for the text 'Req' (not including ' )
If the loop finds 'Req' it will search in column 'N' of the same row for any data at all
If it finds data in column 'N' for that particular row, it will check column 'O' of that same row for any data at all
If it finds data in column 'O' also, then all 3 parameters have been met
The loop should continue checking for these 3 items through row 500
If the loop determines that for every 'Req' found in the unhidden row there is data in the corresponding column 'N' and 'O' a message will appear that says 'Checklist Complete"
Upon closing the message box, the file should save and then exit
If the loop determines that for every 'Req' found in the unhidden row, there is not always data present in column 'N' and 'O' the message box should appear and say 'Checklist Incomplete'
In the same message box, it should provide a list under 'Checklist Incomplete' that provides the text found in column 'D' for each row where it failed the test of having 'Req' in the unhidden row and data at all in column 'N' and 'O'
That last part will give the user a tool to see where they might have forgotton to enter data.
View 3 Replies
View Related
Jun 20, 2009
I am using DSUM functions which result in having to have an extra row beneath each of the DSUM formula rows (for the criteria arguments)
The code below checks for color coding and then populates 1 or a 0 in the database for the DSUM formulas
Im trying to optimize the code so that it runs faster. how can i code to skip the rows that do not contain data?
other optimization / best practices that you recommend are appreciated!
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Goto errorout:
If Not Intersect(Target(1, 1), Range("j3")) Is Nothing Then
Application. ScreenUpdating = False
For Each rcell In Range("j11:n731")
If rcell.Value = 1 Then
rcell.Interior.ColorIndex = 37
Else
rcell.Interior.ColorIndex = xlNone
End
View 8 Replies
View Related
Apr 20, 2007
I have two worksheets that need to use the Vlookup.
Sheet1 has data from A1 to A19231
Sheet2 has data from A1 to A19231
I want to match the data from sheet 1 to sheet 2
When I try to use the Vlookup function on sheet1 B1 I get a REF or NA and can never return the exact value or utilize the function correctly.
View 10 Replies
View Related