Deleting Rows In Filtered Set With For Each?
Apr 8, 2013
I am working on solving a problem where I get every other row deleted instead of every row. The situation is that I am using Autofilter to find empty cells in a column that shouldn't have empty cells. Before I can delete them, I need to add them to an array for exceptions handling. This means I need to step through the filtered range and record each unique ID for followup, then delete them. If I delete as I go, the "For Each" doesn't work on the original rows, but works on an increment. This means a deleted row causes the range to shift up one, and I end up deleting every other row.
I know I can solve this by deleting separately from recording them, but am searching for a way to work with the "For Each" maybe using a "Step -1" or something similar.
View 9 Replies
ADVERTISEMENT
Sep 25, 2012
How do I delete filtered rows without deleting the hidden rows in excel 2010?
View 8 Replies
View Related
Mar 1, 2012
I have discovered that my blue highlighted code posted below isn't deleting the visible rows of filtered data as expected.
Code:
With core_data
.Activate
.Range("D5").Select
Dim rngToDelete2 As Range
llastrow = 0
lmergedelete = 0
llastrow = .Range("a65536").End(xlUp).Row 'calculate the last row visible
'filter the visible rows to include only those rows in which dupphase3 = "DUP" (ie. duplicated rows)
[Code] ....
Additionally, and I'm not sure if it's related to this, but I am receiving an error with the red line .... "Application-defined or object defined error".
View 6 Replies
View Related
Jun 6, 2013
I'm working through a filter macro to delete unecessary rows of data from my dataset.
- I have a Dynamic Range for my dataset called "CanadaData"
- I'm trying to delete rows from the 5th column of my dataset for cells containing "DIRECTSHIP"
The macro filters the range fine, but when if comes to deleting the row, the macro stops.
Sub CanadaWarehouseFilter()
x = Range("E" & Rows.Count).End(xlUp).Row
If Application.WorksheetFunction.CountIf(Range("E22:E" & x), "DIRECTSHIP") > 0 Then
With Range("CanadaData")
[Code] ......
View 2 Replies
View Related
Nov 6, 2012
I have an issue with trying to write a macro to apply a filter and then delete all lines.
Within the macro I copy and paste one sheet to a new one, and Paste Special Values over all formulas, leaving me with a column that has some figures and some "#N/A".
i.e.
13.75
12.00
#N/A
14.00
So I need to do something in the macro that then applies a filter on this column and deletes off all the #n/a results.
This table has a number of columns not just this one so it is the full rows that need removing.
I see on other posts that using a range.specialcells clause could work, but i'm not too sure exactly on how to apply this.
View 1 Replies
View Related
Jun 9, 2009
I have a macro which is copying data from several worksheets into one consolidation worksheet. When determining where to paste the data into the consolidation sheet, the macro includes some logic to find the last row that has data in it (using e.Range("A65536").End(xlUp).Row, where "e" is a variable holding the name of the consolidation worksheet).
Once all the data is on the consolidation worksheet, I have a second worksheet with formulas that link to the consolidation sheet. The issue I have is that the first step of my consolidation macro deletes all data on the consolidation sheet to ensure that no data is double-counted). I am deleting the data with logic that simply deletes all rows from 3 to 65536. Once these rows are deleted, Excel returns a #REF! error on my second worksheet which is linking back to this data.
Rather than deleting the rows on the consolidation sheet, I have tried using the Clear and/or ClearContents commands instead. This works (i.e., my formulas no longer error out), but results in the consolidation macro running very slowly (~15 minutes, compared to
View 9 Replies
View Related
May 25, 2013
The first code hides everything just fine based on the date in A1. When I change it to the second code to delete instead of hide it is leaving a bunch of rows that the 1st code hides. Both codes have the same search criteria.
Code:
For Each cell In Range("B8:B5000") If cell.Value Range("A1").Value Then cell.EntireRow.Hidden = True
Next cell
Code:
For Each cell In Range("B8:B5000") If cell.Value Range("A1").Value Then cell.EntireRow.Delete
Next cell
View 4 Replies
View Related
Sep 30, 2008
I have the following codes to delete all blank rows in column A
Dim lastrow As Long
lastrow = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
MsgBox lastrow
With Sheet1
For t = 1 To lastrow
If Cells(t, 1) = "" Then
Rows(t).Delete
End If
Next t
End With
End Sub
Although it is working , it is not deleting all the blank rows at once, I have to keep pressing on the macro button running the macro several times, until all blank rows are completely deleted.
View 9 Replies
View Related
Apr 14, 2012
I have recorded a macro which deletes the visible rows after an auto filter is run - ( auto filter is for custom and blanks).
I thought this was working, but when i look at the code, it looks as if the rows to delete have been hard coded in, and not adapting to just delete the filtered ones.
View 8 Replies
View Related
Aug 19, 2013
So I have the following code:
'Remove UPC sales below $5000
Range("G38").Select
ActiveCell.FormulaR1C1 = "=SUMIF(C[-3],RC[-3],C[-2])"
[Code]....
View 2 Replies
View Related
Jul 25, 2014
I am able to autofilter a sheet to show only rows with a date in Column U but no "x" in Column BC. Now I want to be able to put an "x" in BC in only the filtered rows. The purpose is if someone enters a date in Column U, the macro will show only those rows minus the rows that have already had an "x" added to BC.
For the most part I've gotten this to work using but it will also put an "x" in Column BC, row 3001 on down.
How can I get it to stop at the last row?
Cells.AutoFilter Field:=21, Criteria1:="<>"
Cells.AutoFilter Field:=55, Criteria1:="="
Columns(55).SpecialCells(xlCellTypeVisible).Value = "X"
View 5 Replies
View Related
Oct 12, 2011
To count the genuine number of rows in a worksheet, I use...
count = Cells.Find(What:="*", SearchDirection:=xlPrevious,SearchOrder:=xlByRows).Row
When I add an auto-filter, the above still works fine.
When the auto-filter doesn't reduce the no. rows, the above returns a value of 1.
I've tried using...
count = Rows.SpecialCells(xlCellTypeVisible).Count
... with a result of 1 if no rows are filtered
So, what is the best way to count the populated number of rows on a worksheet where there is an auto-filter that may, or may not, reduce the number of rows ?
View 2 Replies
View Related
Feb 10, 2012
I have a database and a user form. Lets assume the database hosts a list of all cities in North America in column C, with that city's state/prov. in column B, and in column A, that state/prov.'s country.
In the user form, the user will select from the available list in the first combobox either Canada or United States. Based on the selection from combobox1, combobox2's rowlist will contain only the states, or provinces, based on the filtered data. The database will be filtered based on column A, column B now shows only the states or provinces it the US or Canada is chosen respectively.
Based then on the selection in combobox2, the user selects from combobox3, only those cities found in that state or province ... information gathered from a filter of column A (country), column B (state).
Basically, with each combobox selection, the database is being filtered.
View 1 Replies
View Related
May 11, 2012
I can see that I'm not allowed to delete rows from a list when it's filtered. Do I have any options to avoid this restriction?
View 2 Replies
View Related
May 6, 2014
What is required to delete the visible rows post filtering?
ActiveSheet.ListObjects("Table24").Range.AutoFilter Field:=9, Criteria1:= _
"Other"
'insert code to delete visible rows
ActiveSheet.AutoFilter.Range.Offset(4).SpecialCells(xlCellTypeVisible).Cells(1, 2).Select
ActiveSheet.AutoFilter.Range.Offset(4).SpecialCells(xlCellTypeVisible).Select
ActiveSheet.AutoFilterMode = False
Selection.Delete Shift:=xlUp 'this is where the error is occuring.
End Sub
View 3 Replies
View Related
Jun 28, 2006
How do I know how many rows are selected by rngToFilter? I need to add in a conditional statement if its 0.
For Each rngCell In rngUnique
sheetName = rngCell.Value
ThisWorkbook.Worksheets(sheetName).Delete
rngToFilter. AutoFilter Field:=4, Criteria1:=rngCell.Value
rngToFilter.AutoFilter Field:=28, Criteria1:="="
Set rngFiltered = rngToFilter.SpecialCells(xlCellTypeVisible)
Worksheets.Add
rngFiltered.Copy ActiveSheet. Range("A1")
View 6 Replies
View Related
Apr 11, 2008
I have filtered data on Sheet1, which I need just columns A, B & C combined and placed on Sheet2. The below code works, but its defined to copy all rows. I'm unsure of what syntax to use for the loop to copy just the filtered data. Also is there a way to "cycle" through the filters? Example Autofilter "1984" copy ABC to Sheet 2, then AutoFilter "1985" copy to sheet 2 and so on?
For Each Cell In Sheets("sheet1").Range("A:A")
If Cell.Value <> Empty Then
i = i + 1
b = Cell.Offset(0, 0).Value & ", " & Cell.Offset(0, 1).Value & " " & Cell.Offset(0, 2).Value
Sheets("sheet2").Range("A1").Offset(i - 1, 0) = b
End If
Next Cell
View 9 Replies
View Related
Jan 9, 2008
I got a code to delete all rows in the sheet which contain the word "DETAILS" but I now want to delete all the rows that do not contain the word "DETAILS"
My code if needed is:
Sub Find_details()
Dim rng As Range
Dim what As String
what = "DETAILS"
Do
Set rng = ActiveSheet.UsedRange.Find(what)
If rng Is Nothing Then
Exit Do
Else
Rows(rng.Row).Delete
End If
Loop
End Sub
View 9 Replies
View Related
Jan 30, 2013
how to delete only visible rows in a filtered list?
View 9 Replies
View Related
Jul 16, 2014
From a combobox selection i filter a table for all entries containing the selected ID (from the combobox).
I first wanted to use selected columns from the resultant display (the filtered table) to populate another combobox so the user could drill down to the final selection that way, but seeing the mess i was getting involved in (I couldn't assign a range to the listfillrange of the other combobox) i think it might be best to settle for simply copying the visible cells to a new table on the selection page (the full database is on one sheet separate from the selection comboboxes and related controls), where the user can simply see the information needed on whatever line item they want - the number of filtered entries rarely exceeds five. What i can't understand is when i query the number of rows in the immediate window from the code snip below, it always comes back as "1", whether i do so on the full range or special visible cells.
[Code] .......
To load another combobox i tired
[Code] ...........
I really would like to be able to do so for further refining, if not feasible, can work with just a display table.
Querying the reultant rows i simply tried:
[Code] ...........
and
[Code] ....
In both cases, though the filtered table had 5 records displayed, the count was... 1.
1) Can the visible cells resultant table be fed into a combobox relatively easily and if so, how?
2) With the count of rows, what am i doing wrong?
View 2 Replies
View Related
Feb 12, 2014
I want to filter my dataset, select column B & C to copy, but exclude the header row. I am having a hard time offsetting the selected range. I get a compile error on what I try.Here is my code (yes, I know, its a little juvenile and I will clean it up, but I need to see things clearer at first):
Sub GetBarrelQualifiers()
'
' GetBarrelQualifiers
[code]....
View 5 Replies
View Related
Feb 15, 2014
My code below is supposed to move filtered rows in 2 sheets ("BANK ENTRIES" and "GL ENTRIES")with "Y"/"y" character on column J which is manually encoded by user. The rule is, before they can move, the total amount in column I in both sheets should match. That is the reason why rows in both sheets should be moved at the same time. I was able to figure out this rule with the use of an If Statement and a message box.
My problem is, if I run the code where there is only 1 row remaining in both sheets, "BANK ENTRIES" would insert a blank row in the third line despite my if statement
[Code] .....
The second problem is, If I run the code on "BANK ENTRIES", my first header on the "GL ENTRIES" will be deleted. If I run also the code on "GL ENTRIES", my first header on "BANK ENTRIES" sheet will be deleted. There must be something wrong on my code. I am attaching my working file for you to have a clear visibility on my problem.
Attached File : xx_xxxx_xxx_Template2_2013-11-30v3.xlsm
View 1 Replies
View Related
Nov 13, 2011
I want to filter and then hide the filtered output in a range of data. But after I hiding, when I remove the filter, everything is there again. I don't know how to hide it even filter is removed.
View 7 Replies
View Related
May 3, 2012
Filtering Date Column "A" 1st qtr 2012
Column "C" has numbers where we figure the average of the entire column
Formula: =AVERAGE(C36:C300)
When I filter or not the Date column "A", the Average is still the same.
How can I force it to only average out the rows displayed by the filter
View 4 Replies
View Related
Apr 1, 2009
I have a large *.tab file with around 450,000 records. I opened the file in excel and then filtered two columns where there are values equal to 0.
I then highlight all the rows and try to delete them, but I receive the following error popup box:
"Microsoft Excel cannot create or use the data range reference because it is too complex."
How can I delete all these filtered = 0 rows without getting this error??
View 9 Replies
View Related
Jun 7, 2007
I have some checkboxes that filter rows and a text box that should display the number of filtered rows:
If checkbox1 Then
Range("F2").AutoFilter Field:=6, Criteria:="<>0", Operator:=And
TextBox1.Text = "No of Records: " & Selection.SpecialCells(xlCellTypeVisible).Count
The text box is showing 1669380 record when there is only about 250.
View 9 Replies
View Related
Aug 28, 2007
what i need to do is store the number of rows visible on the data sheet (after a data filter is applied) into a variable so i can do a calculation with said data. Is there such a command?
for example....
data:
row header a | row header b
line 1
line 2
line 3
after auto filter:
row header a | row header b
line 2
code stores number of rows visible into a variable....
vVariable = rows visible... in this case 2 (NOT 4... which is the total rows including hidden)
View 5 Replies
View Related
Dec 11, 2012
I have a range that has been formatted as a table. Once I've applied a filter, if I try to select all of the rows, and delete the visible rows the option is greyed out.
Is there no way, short of vba, that I can just simply delete the visible rows?
View 1 Replies
View Related
Jan 22, 2012
I'm trying to calculate the number of rows in a matrix that have a complete row of data. I would noprmally do this using nested if formuals and a count function, but the columns of the matrix are filterable so the count won't work.
Is there a combination of functions that will adapt as I filter data?
View 5 Replies
View Related
Jun 16, 2014
I have a name which uses the formula
=OFFSET(Query!$F$1,0,0,COUNTA(Query!$F:$F)+1)
That populates a dropdown
However I want to exclude hidden / filtered rows?
Iv'e tried sumtotal etc but didnt get any results. I'm after using the rows as options.
View 1 Replies
View Related