VB Code To Compare/delete Rows Of Data
VB code to carry out the following task?
Look at name in cell BC2, check the name in cell BA2 and if is the same delete the name in BA2 and BC2.
If is different then leave both cells as they are and move onto checking BC3 against BA3
carry this loop thru BC2 : BC40
View Complete Thread with Replies
Related Forum Messages:
Total Data- Having A VB Code To Delete Empty Rows
The spreadsheet I am working in has $ which I need to total. The information, or rows, can vary from day to day so there is no static place to have a cell with an @sum. Management wants me to add a pretty line that says
'Total' in one cell and the $ next to it. I have about 30 sheets with columns to total. Yuck, takes forever.
How do all of you total if you don't know the last row? At the top?
I thought it might work to put an @Sum in the last row of the spreadsheet, in the column
I need to total, and having a VB code to delete empty rows. That would be automatic.
Compare Columns & Insert / Delete Rows
I have a large data file. In column A is 8760 entries (every hour of every day of the year). Columns D & E are linked, Column D is the time and date whilst Column E is a parameter assocaied with that time and date.
There should also be 8760 entries in these columns, however there are some missing data lines in columns D & E. I would therefore like to move the rows in columns D & E so they match with the entries in column A. Can anyone help? I have a headache as i have over 70 files to complete this operation on.
Code To Delete Rows Based On Status Code In Column
I'm trying to write a VBA script which will delete all rows in my Excel spreadsheet where Column I (which contains a status code) does not contain the word "Completed".
At the moment, I'm doing this the other way round: my script is able to search for entries in Column I which contain the status codes "Pending", "Awaiting Authorisation", "In Progress" etc and delete them. The idea is that when all those rows are deleted, I'll only be left with rows which have a status of "Completed". This works fine at the moment. However, the concern is that if a brand new status code is added to the data file, my script would be unable to pick it up and delete it. This is a small sample of the code I'm currently using (which deletes all the rows with statuses other than Completed):
Compare 2 Columns & Delete Rows Ouside Scope & Show Formula Result In Message Box
I have the following code to compare two columns and delete adjacent rows if 1 is greater than or equal the other...
Dim intLstRow As Integer
For intLstRow = Range("E" & Rows.Count).End(xlUp).Row To 2 Step -1
With Range("E" & intLstRow)
If .Value > .Offset(0, 1).Value Then .EntireRow.Delete
For intLstRow = Range("E" & Rows.Count).End(xlUp).Row To 2 Step -1 .............
Delete Rows Code
I am using the following piece of code, which I have copied and modified from another workbook in which it worked properly.
'Delete Unneeded Rows
Dim lUsedRangeRows As Long
Dim lRowCounter As Long
lUsedRangeRows = .UsedRange.Rows.Count
For lRowCounter = lUsedRangeRows To 3 Step -1 'work from the bottom up
If DateValue(.Cells(lRowCounter, 5)) < DateValue(.Range("PayDate")) Then
I receive a "Type Mismatch Error" on the If DateValue line (highlighted red). PayDate is a named range for cell A2 on the same page.
How To Delete Rows Using VBA Code
I have data in cells Starting from
B1= Quality, C1= Size, D1= Quantity, E1= Length, F1= Width, G1= Thickness
My data comprises from B2:D2000 ( I am exporting data from SQL Server) so the data is in the horrible conditions , having blanks cells in these three columns . Columns E , F and G are empty.
Can someone help me in cleaning these empty rows in the three columns on the following conditions
delete entire row if column B, C and D contains empty or blank cells or zero
delete entire row if any cells in Column C and D contains text values
delete the entire row if Cells in colums A contains the word Map
the data in the column C is in the following format( Length x Width x Thickness)
Is it possible to get this data in the following form
VBA Code To Delete Certain Rows
I have an excel file that i need to delete some empty rows in the file. it looks like this: I have to delete THE EMPTY ROW above each custom table, and leave everything else as it is.
Code To Delete Empty Rows
I have a database and at times I have empty rows. I am trying to write code that looks at the database (it may change daily) and deletes the rows that are empty. The code I've written does NOT work:
Dim emptyrows As Object
Set emptyrows = Cells(65536, 255)
If Rows = "" Then
Delete Duplicate Rows Code ...
I have trouble in deleting the duplicate rows. I have a code to find the duplicate values
Public Sub Unique_Proj() 'This is the first step which takes out the unique projects from the base data
'this selects the unique projects in the sheet
Application. ScreenUpdating = False
Dim A, E, B(), n As Long
A = . Range("g2", .Range("g" & Rows.Count).End(xlUp)).Value
Redim B(1 To UBound(A, 1), 1 To 1)
.CompareMode = vbTextCompare
For Each E In A
If Not IsEmpty(E) And Not .exists(E) Then
n = n + 1: B(n, 1) = E: .Add E, Nothing
Range("G3:G" & Rows.Count).ClearContents
Range("G3").Resize(n).Value = B
Application.ScreenUpdating = True
However, this gives me a list of values in that perticular column only.
What I want is either delete the complete row which is duplicate OR select the entire range of values which are unique (based on the column searched) and paste it in a new sheet. The second option is more better for me.
Fastest Way To Delete Rows In Code
I have a bit of code that deletes row by row and takes a long time to process. I've seen people suggest deleting by range processes more quickly. How can I modify this to delete by range?
lngLastRow = Sheets(2).Range("A65536").End(xlUp).row
For lngRowCount = lngLastRow To 1 Step -1
If Application.WorksheetFunction. CountIf(Sheets(2).Range("A1:A" & lngRowCount), Sheets(2).Range("A" & lngRowCount)) > 1 Then
Sheets(2).Range("A" & lngRowCount).EntireRow.Delete
Compare And Move Rows Of Data
I need to run the same database dump every day and find the differences. Both spreadsheets will have the same column headings, with Column A being the lookup value. Each spreadsheet will have many columns of data. I need to find the differences from Row 1 on spreadsheet A with Row 1 on spreadsheet B.
Spreadsheet 1, Column A value is 900026. Need to find 900026 in Column A on Spreadsheet 2. Compare all the data in each column to see what has changed. If anything has changed on Spreadsheet, copy the row from Spreadsheet 2 onto a new sheet and 'tag' which data has changed.
Also, again using Column A as the identifier, if there are rows on data on Spreadsheet 1 that do not appear on Spreadsheet 2, copy the entire row onto a new sheet and tag it as "Not on new datadump". And vice versa, is there are rows of data on Spreadsheet 2 that do not appear on Spreadsheet 1, copy the rows of data onta a new sheet and tag it as "Not on old datadump".
Code To Delete Rows Based On Condition
I have an Excel spreadsheet that is given to me weekly, but I'd like to remove repetitive and empty rows before presenting it to someone. It is set up like this:
Row 1, A1, contains the word Project.
Row 2 is blank
Row 3 is blank
Row 4 is blank
Row 5, A5, contains the word Organization.
Row 6 is blank
Row 7, A7, contains a 6-digit number starting with 3.
Row 8 is blank
(all of the above starts over again (loops) approximately 30 times)
The final row contains the phrase "Grand Total"
*Row 5 is repetitive and is not required. I'd like to delete it.
I have too many empty columns. Getting rid of them (and Row 5) would greatly shorten my spreadsheet.
I am aiming for:
(Repeat until finished)
Macro To Compare Rows Of Data By Colour
I have the below macro (kindly provide by VoG) which compares rows of data from columns H-P, excluding M, where two rows match across the criteria, the macro takes the first of these matches and copies to sheet2, where there is no match it copies each entry to sheet 3. It works fine except for 1 thing, the data that I am comparing comes in 2 types of rows, coloured yellow and green (color codes 36, 35 in Excel 2003). I would like to add a further condition so that the macro will not match off where 2 yellow or green rows appear together and where a yellow and green row match it will take copy the yellow row to sheet 2 regardless of whether the yellow or green appear first in sequence.
Dim i As Long, LR As Long, j As Long, k As Long
Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet
Set ws1 = ActiveSheet
Set ws2 = Sheets.Add 'matches
Set ws3 = Sheets.Add 'non-matches
j = 1
k = 1
LR = .Range("H" & Rows.Count).End(xlUp).Row
For i = 2 To LR Step 2
If .Range("H" & i).Value = .Range("H" & i + 1).Value And _
Abs(.Range("I" & i).Value - .Range("I" & i + 1).Value)
Speed Up Macro Code To Delete Duplicate Rows
I have a VBA Macro that loops through about 100,000 rows in an Excel file and removes rows that have a duplicate cell value. The macro takes about an hour and a half to run. Are there any ways to make the Macro run faster? Any ways in general to make VBA macros run faster?
Code To Delete Rows Based On User Input
I am using the following piece of code to delete unwanted rows from a worksheet:
FinalRow = Cells(65536, 3).End(xlUp).Row
For i = FinalRow To 1 Step -1
If Cells(i, 3).Value Like "*2007*"
What I am working with is a sheet of about 5000 customer appointments going back to the beginning of 2006. A have peiced together a lot of code to format it exactly as I want and to create a pivot table of what is remaining after the rubbish has been deleted.
However I am finding that I need to keep amending and re-running this bit of code, depending on the date range I want to look at. For example the code above will delete all appointments made in 2007.
My question is: is there a way that I could incorporate an input box, whereby excel asks the user for a start date and an end date and deletes any rows outwith that range?
Some important info: All of the dates are in column C, in the format mmm yyyy
I would only need to narrow down to a month - so for example mar 2008 - jun 2008
Code Runs When I Hide Rows Or Delete Cells
So i don't have any events that i know of that should trigger my macros to run. But everytime i delete a cell, or hide rows, it seems all my code/macros just auto run. And i had a few times when i hid the rows, the code would start, and then my excel application would crash.
Macro To Delete Rows With Same Data
In the sample below I need a macro that will delete the entire rows
where the data is repeated in a given column---that is, that it would delete
the repeat ones, leaving one of them. In this example, in the first set, all
that should be left are two rows which contain ME22N and MR8M in column E.
ME22N is repeated two more times and those rows need to be deleted.
If I could get a macro that would ask for the column to operate in, that would be
great for other spreadsheets where it would not necessarily be column E.
Macro To Delete Rows With Data Only
i am in need of a macro to delete the rows with data only which then leave the sheets cleared and ready to use the next day. if i create a macro to clear say fifty rows of data and then tomorrow there could be 75 rows of data and the macro will fail clearing the sheet. if there is a solution can i just say i can create macros but never stepped into them in visual basic to change them, i guess your thinking what do i do if the macro doesn't work. and the answer is indeed yes i delete it and start it from the begining again and again till i get it right.
Delete All Rows/Data Above This Line
Let's say I have the following file which is imported via a macro which comes from a txt file. [Apologies it's 7mb zip file] http://www.fileden.com/files/2007/8/...mpNotFixed.zip
The way the txt file is that two rows make up one row, but SAP spits the data out into two rows. Now there are specific things that I need from these tabs. The way i can get this data is to perform sort by descending on the tabs. When you sort by a descending you get the data that i need [at the second half of the worksheet]:
Basically what I want to know when i create a macro, how can i get it do delete all the rows above a specific row. In the attached file, go to DataImport2.
I would like a macro to find the word "English" in column C and then delete all the row's above it. I cannot record this because it copy's the specific cells, which i do not need. DataImport3 is how the data comes out, All i do is sort by descending ... and i need help as stated above to delete all unnecessary data.
Delete Both Rows If Data Is Duplicated
I have a worksheet with that I need to delete both rows if the data in one of the columns is the same. I know how to delete the duplicate row, but I need both rows deleted..........
From the example above I would want Rows 1,2 and 10,11 and 12,13 deleted based on the data in column D
Move Column Data To Row Then Delete Those Rows
We have a client that provided us with a text file that we imported into
Excel. Rather than have the entire record in one row, they have the record
in 4 rows.
What I need a macro or something to do is move award 2 award 3 and award 4 into the same row and after doing this delete the other rows.
Below is an idea how this looks.
What we need for our data to work is:
1JohnSmithstreetcitystateZIPaward 1award 2award 3award 4
2BillJonesstreet2city2state2ZIP2award 1award 2award 3award 4
Find Rows Containing Specific Data And Delete
I have a large report that I pull each month listing which products we sold last month. There are certain products I don't want included in the report. Until I can have the report re-written, I'm looking for a macro or a function that will find all the rows that contain these product numbers in column M and delete the entire row. The product numbers I need to delete are always the same, but some months one or more of them might not be in the report if they weren't sold.
Find in column M the product numbers:
Delete those rows containing the product numbers above
Automatically Delete Rows In Which No Data Exists
I have some code that works almost perfectly. I am trying to automatically delete rows in which no data exists in cells in a certain column.
the problem that I am having is that is seems to go into an infinite loop.
For example, if I delete row 5 and then iterate to the next row, row 5 becomes what used to be row 6 and now my code is on row 6...essentially skipping a row.
Here is an example data set (note that the set is for 20 rows):
here is the
r = 20
Min = 1
Do While r >= Min
If Cells(r, 1) = "" Then
r = r - 1
Delete Rows Of Data In A Macro (looped)
I receive spreadsheets each month in the same format. It is effectively 6 rows of titles, 7 rows of weekly data, 2 rows of weekly summary, 3 blank rows then it repeats itself with the 6 rows of titles etc... down the page for 8 or so weeks.
I wish to create a (looped) macro that will leave the top set of titles and the 7 rows of weekly data (Mon to Sun) then delete the next 11 rows and so on and so forth to the end. I will then be left with the intro to the dataset followed by a whole months worth of data in continuous format as opposed to weekly summarised sections. But I am stuck as my macro knowledge is basic and I can only record macro's not program VBA.
I can create a macro and manually delete all entries for one spreadsheet but would rather have a code to do this than can run (x) amount of times in case the size of data changes. When it deletes section by section, the cells move up and the row numbers change.
Delete Blank Rows Above Data Table
The below code deletes blank columns in two work books. Now I would like to add to this code by performing an additional action on the worksheets. Below is the code that I have so far:
Dim iCol As Long
Dim Isheet As Long
Dim Item As Worksheet
Dim MFBooks(2) As Workbook
Dim lngIndex As Long
Set MFBooks(1) = Workbooks("MF BANK EXPOSURE SUMMARY.xls")
Set MFBooks(2) = Workbooks("MF CP EXPOSURE SUMMARY.xls")
For lngIndex = 1 To 2
For Each Item In MFBooks(lngIndex).Worksheets .....................
Macro To Automatically Delete Data And Hide Rows
I have a spreadsheet that allows room for 35 students per period, but instead of having the teacher manually go in and delete the extra data and hide the rows, I want to create a macro that will do so.
In cell B4 the teacher will enter how many students are in their first period class. (cell C4 for second period, cell D4 for third etc...) I want the entering of the number to automatically hide the superfluous rows and delete the data in the second column for those rows. I don't want the rows to be completely deleted because another year they may have more students and need those rows back.
I have attached one of the workbooks that I need to put this macro into. I have created room for 35 students in a given period. So if they have 23 students entered into B4 (period one) I would need rows 30-41 to be hidden, and I would need the formulas in B30:B41, E30:E41, H30:H31, K30:K31 etc....deleted.
Basically the point of the formulas is the teacher will enter the total points possible on that given assignment in cell B6, E6, H6 etc....and it autofills that score down, so the teacher only enters those that missed points instead of entering in the missed ones and the 100 percent ones.
I would need those formulas to be deleted because if the assignment was out of 10 then cell B30-B41 will give students a 10, and then the class average will be computing those scores,but those students don't exist.
But if I can't get the macro to auto delete the formulas, I will just not have those formulas in there, and the teacher can enter all scores.
Delete Rows In Txt Input File BEFORE Searching For Data
I read in a txt file with the code below. There's some kind of special character in the last 3 lines of the input file that makes the macro crash. I don't need anything in those 3 rows. How can I delete them before my Do Until loop?
Dim Mytxt As String
Mytxt = Application.GetOpenFilename(FileFilter:="EXCEL files (*.txt),*.txt", Title:="Open the Report file you need")
If Mytxt = "" Then Exit Sub
Open Mytxt For Input As #1
i = 1
Do Until (EOF(1) = True)
Line Input #1, tempstr
Cells(i, 1) = Mid(tempstr, 23, 5)
Cells(i, 2) = Mid(tempstr, 25, 1)
Cells(i, 3) = Mid(tempstr, 33, 3)
i = i + 1
Macro To Extract/insert Data Then Delete Rows
I am working with a spreadsheet generated from software that keeps track of fuel usage for a large fleet of vehicles. The data comes out looking like the snapshot below.
I am trying to get the data into a more convenient format for analysis. I need a macro that will:
1) Take the text "Product summary for vehicle ID 0000****", extract the last 4 digits of the text, and paste it where the 1 is under the Product heading (a10). Those digits are the actual fleet number, and I need to separate them out from the rest of the text. The digits will change for each vehicle, so the macro should just move down the spreadsheet doing the same thing for each instance (the setup you see is repeated for every vehicle).
2) Once the first goal is accomplished, I would like the macro to then go back through and delete every row except for the rows with the pertinent data in them. So this means I would only want one row per vehicle and all rows would line up directly below each other like demonstrated below.
Delete Duplicate Rows Using Data In Column A As Criteria
I have a spreadsheet that has thousands of rows of data with maybe 6 columns.
I would like to remove the duplicate rows but the problem I am facing is that I would like to use column A as the criteria.
There are some duplicates in column A but the issue is that the data in column B, C, D, etc may not be the same for each duplicate.
Easier to see in this image:
So A1 is the same as A6
A1 has data in B1 and C1, no data in D1
A6 has data in B1, C1 and D1
I need to delete either row A1 or row A6, it is irrelevant which row it is but one of them has to go.
Concat Rows Based On Duplicate Data & Delete
I need to concatenate and de-dupe. I want to find dupes, concatenate a column, and the delete the duplicate columns--all while maintaining data from other populated columns.
Here is the some example data:
#| Type | Name
1 | A | Bob
1 | B | Bob
1 | C | Bob
2 | B | Sally
2 | E | Sally
3 | A | Bill
3 | C | Bill
4 | E | Nancy
The result should look like:
# | Type | Name
1 | A, B, C | Bob
2 | B, E | Sally
3 | A, C | Bill
4 | E | Nancy
I am using Excel 2003.
Formula: Delete Rows If Common Data With Another Sheet
I have 2 spreadsheets of names (~2500 and ~1800) and a bunch of corresponding data continuing down the row. both are structured this same way:
Row1: LAST, FIRST, data1, data2, data3, etc...
is there a formula which can "check" the larger sheet for duplicate names (a row with exactly the same FIRST and LAST), and then either:
1) delete these rows from the smaller sheet
2) clear the contents of those rows
3) or at least flag them in some way so I can quickly delete them
it would be quite a task to eyeball and remove these rows one-by-one, so i'm wondering if a formula could somehow do it (I don't really know anything about visual basic)
One other piece of information which might be important:
For these rows containing duplicate first & last names between the 2 sheets, the entire row is not a duplicate entry; only the names will match (columns A & B)... The other columns down the row will have different values between sheet1 & sheet2. Not sure if this changes anything....
VB Code Bringing New Data In Onto The Wrong Blank Rows
Im having some problems with the following VB code
It does import all my data but if I have 4 files for it to import to the 3 different tabs the following happens:
on tab A the first 3 files all come in fine but the 4th file comes in on row 103 instead of the next blank row which would be 22
on tab B the first 2 files come in fine but the 3rd and 4th come in starting on row 94 instead of first blank row which would be 13
on tab C the first 1 file comes in fine but the 2nd 3rd and 4th files come in starting on row 88 instead of 7.
I'd be more then happy to email my spreadsheet to someone as its quite hard to explain whats going on!
I know its probabally a daft mistake I've made in the code if someone could just point out what I've done wrong so I can try to resolve it.
Private Sub ImportData_Click()
'Imports and processes the raw FILE data into the Workbook
'Define a as the current FILE file reference cell,
Dim a As Range
'Define minTime and maxTime as the min and max task periodicity should be processed.
Dim minTime As Long, maxTime As Long
'Define a store for the address of the period totals...
Select Data Rows For Pivot Table Code
I have worksheet with data . Everytime number of rows with some data in it changes . Like sometime there are 100 rows with data or other tome it may be 57 only. I want to write VB code to select only those rows which have data. Thereafter I will use Pivot Table code to get required information. I know VB code to generate Pivot Code. But what happens is that if any blank row gets selected in data range for Pivot Tables, thereafter grouping by "Month" is not done.
go through attached file? In Module 1 ( which contains macro ) instead of R1C1:R8C4 , I want range with data only.
Compare Three Cells And Delete Row
I am trying to write some code that will compare three cells on a row and if they match then it will delete the row.
Column U-has Y, N entered
Column V-has Y, N entered
Column O-has 1, 2, entered (some cells may have the fill color set to red)
I need the macro to look at Column U and Column V and for example if the cell U2 has a N, and V2 has a Y then the macro would look at O2 and it there is a 1 with the fill color set to red the macro will delete that row.
The spreadsheet will vary on how many rows it contains. It can contain up to 5,000 rows and the macro would need to go through all the rows.
Compare And Delete Macro
Attached is a sample data set. If all the positive and matching negative entries are located and removed, there are 4 remaining entries. The only pertinent columns are A through J, the columns after that are where my fiddling is occurring.
First you have to highlight all the data (including the control columns to the right). Then, my macro sorts the data by the absolute value (found in column O), allowing the formulas in N to then properly mark all negative entries with an "X and all the ones that now have a matching positive entry directly below it with an "X".
Then my macro hides all the fields with an "X" in column N. There is a macro called "CLEANSE" that does this, but only hides the rows. I keep messing up when I try to delete them entirely.
Can someone correct my macro so it will properly delete the rows with an "X" in the N column, or suggest a better macro that will scan the E column and flag matching positive/negative numbers and delete them without my control columns N and O?
Add # Of Rows In 4 Shts/compare 2 # Of Rows In Another Sheet
I have some code that consolidates data from 4 sheets in different workbooks into one sheet on a separate workbook. I'd like to add a validation check to make sure that all rows are copied and pasted.
Specifically, I would like to total the # of rows in each worksheet and compare that # to the total # of rows in the consolidated worksheet. On some of the worksheets, the code deletes the header row and/or the last row. So, the count of the rows should happen after those rows are deleted. If not all the rows are copied, a message box should pop up saying "Not all rows copied".
The full code is posted in the linked post below which includes the workbook names, sheet names, etc.:
Multiple Sheet Compare And Delete
I have several (Child) sheets of data which I need to compare to a (Parent) master sheet. If a cell in column "A" on a child sheets matches a cell in column "A" on the parent sheet, I need the row on the Parent sheet deleted so in the end, only the rows with no Child matches are left on the Parent sheet.
Modified Compare And Delete Across Sheets
This compares cells in every sheet to a master sheet "AllUnits" and deletes all the matched rows on the Master. I modified it slightly to also delete the matched row on the source sheet as well (looking for rows that are not matched on any sheet). This works to a point, but I have to re-run it many times since when the source row is deleted, the code actually skips to the next row. I tried to reset the source variable with