Delete rows if cells value, across all worksheets!?

GassySpudz

New Member
Joined
Apr 30, 2019
Messages
10
Hi All,

I've gotten myself in a right mess, sulked like a child and deleted all my work!

What I would like is the main body of a macro which I will hopefully adjust to what I need and I can call upon the sub within another macro.

I want to be able to delete multiple rows if column A cells contain a certain value (with the ability to add extra criteria in the future), but across ALL sheets!
I managed to get it working for a single sheet, but whilst using this site to get it to do all sheets it kept coming up with errors and during my “fixing” I’ve broken it, threw all my toys out the pram and just deleted everything!

If anyone has a code along these lines I can use to tinker with – and hopefully not break again – that would be much appreciated.

E.G
Delete x all sheets

X 2 A delete
B 2 A Keep
X 5 B Delete
 

Some videos you may like

Excel Facts

Move date out one month or year
Use =EDATE(A2,1) for one month later. Use EDATE(A2,12) for one year later.

Fluff

MrExcel MVP, Moderator
Joined
Jun 12, 2014
Messages
42,834
Office Version
365
Platform
Windows
Hi & welcome to MrExcel.
Will the criteria be exact values, or will it be partial matches?
 

GassySpudz

New Member
Joined
Apr 30, 2019
Messages
10
Hi!

Thank for the fast response! It will be exact values I will manually edit in the macro. I would like to do it in a data range in the future so less capable bodies could edit, though i'll figure that out myself if you know if its even possible?

Zac
 

Fluff

MrExcel MVP, Moderator
Joined
Jun 12, 2014
Messages
42,834
Office Version
365
Platform
Windows
Ok, how about
Code:
Sub GassySpudz()
   Dim Ws As Worksheet
   Dim Ary As Variant
   
   Ary = Array("[COLOR=#ff0000]Hertfordshire[/COLOR]", "[COLOR=#ff0000]Wiltshire[/COLOR]")
   For Each Ws In Worksheets
      If Ws.AutoFilterMode Then Ws.AutoFilterMode = False
      Ws.Range("A1").AutoFilter 1, Ary, xlFilterValues
      Ws.AutoFilter.Range.Offset(1).EntireRow.Delete
      Ws.AutoFilterMode = False
   Next Ws
End Sub
Change values in red to suit.
 

GassySpudz

New Member
Joined
Apr 30, 2019
Messages
10
Hi and thanks again!

It is running and deleting the data from one work sheet but showing an error when it tries to remove the filter :( and the yellow fault line is on the .delete row on VBA

Zac
 

Fluff

MrExcel MVP, Moderator
Joined
Jun 12, 2014
Messages
42,834
Office Version
365
Platform
Windows
What is the error message & number?
 

GassySpudz

New Member
Joined
Apr 30, 2019
Messages
10
Hi there!

Sorry for the late reply, please see error below!

Run-time error '91';

Object variable or With block variable not set

Thanks,
Zac
 

Fluff

MrExcel MVP, Moderator
Joined
Jun 12, 2014
Messages
42,834
Office Version
365
Platform
Windows
Not sure why you would be getting that error.
Do you have any merged cells?
Also does your data always start in A1 with a header on row 1?
 

GassySpudz

New Member
Joined
Apr 30, 2019
Messages
10
Hello again!

Sorry about the late reply, I've been in and out of the office!

No merged cells, and yes A1 is the header and A2 downwards is the start of the data

Thanks,
Zac
 

Fluff

MrExcel MVP, Moderator
Joined
Jun 12, 2014
Messages
42,834
Office Version
365
Platform
Windows
Do the value(s) that you are filtering on actually exist in the sheet?
 

Watch MrExcel Video

Forum statistics

Threads
1,102,641
Messages
5,488,052
Members
407,620
Latest member
abhilenka

This Week's Hot Topics

  • Timer in VBA - Stop, Start, Pause and Reset
    [CODE=vba][/CODE] Option Explicit Dim CmdStop As Boolean Dim Paused As Boolean Dim Start Dim TimerValue As Date Dim pausedTime As Date Sub...
  • how to updates multiple rows in muliselect listbox
    Hello everyone. I need help with below code. code is only chaning 1st row in mulitiselect list box. i know issue with code...
  • Delete Row from Table
    I am trying to delete a row from a table using VBA using a named range to find what I need to delete. My Range is finding the right cell. In the...
  • Assigning to a variable
    I have a for each block where I want to assign the value in column 5 of the found row to the variable Serv. [CODE=vba] For Each ws In...
  • Way to verify information
    Hi All, I don't know what to call this formula, and therefore can't search. I have a spreadsheet with information I want to reference...
  • Active Cell Address – Inactive Sheet
    How to use VBA to get the cell address of the active cell in an inactive worksheet and then place that cell address in a location on the current...
Top