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
 

Fluff

MrExcel MVP, Moderator
Joined
Jun 12, 2014
Messages
30,571
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
30,571
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
30,571
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
30,571
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
30,571
Office Version
365
Platform
Windows
Do the value(s) that you are filtering on actually exist in the sheet?
 

Forum statistics

Threads
1,078,541
Messages
5,341,061
Members
399,414
Latest member
EMW2159

Some videos you may like

This Week's Hot Topics

  • Problem with Radio Button's format control
    I am creating an employee evaluation template (a sample is below) Column A is the category Column B, C D, E and F will be ratings (unacceptable...
  • Last Display on userform to a Listbox
    [CODE=vba] lstdisplay.ColumnCount = 15 lstdisplay.RowSource = "A1:O600000" [/CODE] So when i do this it Displays everything on the sheet i am...
  • Rename and move files to a new location
    Dear all, I have an excel file with the following information. The actual file name is at column A but i want to rename it using the following...
  • Help with True/False Formula
    Hello! Am stumped how to fix this formula, in which my result returns 'True', but it should return False. =IF(AG2=True...
  • Clear extra characters from a provided range of cells
    Dear All, I have following code which gives me desired output to remove extra characters from a provided range. But it takes too much time when...
  • Help with Current and highest streaks
    Hi there, I've just joined the forum and this is my first post. I've already spent quite a bit of time searching the net and this forum for a...
Top