Solved

VBA Overflow problem when filtering

Posted on 2016-10-20
14
50 Views
Last Modified: 2016-10-24
I am doing a filter to find all of the items with ‘Credit’ then I want to delete these items. The below works fine when there are items in there with ‘Credit in column I. However if there are no items I get ‘Overflow’

Can an expert provide the solution so that if there are no items in column with ‘Credit’ the macro moves on to the next part of the code.

With Range("I1:I" & Cells(Rows.Count, "I").End(xlUp).Row)
            .AutoFilter 9, "=CREDIT"
                         
            If .SpecialCells(xlCellTypeVisible).Count > 1 Then
            .Resize(.Rows.Count - 1).Offset(1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
            End If
            .AutoFilter
    End With


Thanks in advance
0
Comment
Question by:Jagwarman
  • 7
  • 6
14 Comments
 
LVL 26

Expert Comment

by:MacroShadow
Comment Utility
Which line does the error occur on?
0
 
LVL 28

Expert Comment

by:Subodh Tiwari (Neeraj)
Comment Utility
Try this to see if that resolves your issue...

 If .SpecialCells(xlCellTypeVisible).Rows.Count > 1 Then
0
 

Author Comment

by:Jagwarman
Comment Utility
If .SpecialCells(xlCellTypeVisible).Count > 1 Then
0
 

Author Comment

by:Jagwarman
Comment Utility
Many thanks works a treat
0
 
LVL 28

Expert Comment

by:Subodh Tiwari (Neeraj)
Comment Utility
You're welcome. Glad to help.
0
 

Author Comment

by:Jagwarman
Comment Utility
Actually I was too quick off the mark closing this out

It does work in that it does not fall over but if there are items with 'Credit it does not go to the next line of code which is

.Resize(.Rows.Count - 1).Offset(1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
            End If

it goes straight to End If missing out

.Resize(.Rows.Count - 1).Offset(1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
0
 
LVL 28

Expert Comment

by:Subodh Tiwari (Neeraj)
Comment Utility
Since you are filtering only one column you should get an error with the first line filtering the data
.AutoFilter 9, "=CREDIT"
Aren't you getting an error with that line?

I think you should use it like this...
.AutoFilter 1, "=CREDIT"
0
Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

 

Author Comment

by:Jagwarman
Comment Utility
The column I am filtering on is column I so that is why I am using .AutoFilter 9, "=CREDIT". If I use .AutoFilter 1, "=CREDIT" that will filter column 'A'
0
 
LVL 28

Expert Comment

by:Subodh Tiwari (Neeraj)
Comment Utility
Your range Range("I1:I" & Cells(Rows.Count, "I").End(xlUp).Row) has only one column i.e. column I, so 9 would be invalid field in this range.
9 is valid if your range being filtered is Range("A1:I" & Cells(Rows.Count, "I").End(xlUp).Row).
I asked you that didn't you get when you used 9 in your code?
0
 

Author Comment

by:Jagwarman
Comment Utility
Ah sorry for being dumb. Ok tried that but still when I do it does not go to the next row and delete the records.

.Resize(.Rows.Count - 1).Offset(1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
            End If
0
 
LVL 28

Accepted Solution

by:
Subodh Tiwari (Neeraj) earned 500 total points
Comment Utility
if you use...
If .SpecialCells(xlCellTypeVisible).Cells.Count > 1 Then
and if column I contains any occurrence of "CREDIT", the following line will delete those rows.
.Offset(1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
1
 

Author Comment

by:Jagwarman
Comment Utility
Thanks again  Subodh Tiwari (Neeraj)
0
 

Author Closing Comment

by:Jagwarman
Comment Utility
Again thanks for your assistance
0
 
LVL 28

Expert Comment

by:Subodh Tiwari (Neeraj)
Comment Utility
You're welcome. Glad to help.
0

Featured Post

Threat Intelligence Starter Resources

Integrating threat intelligence can be challenging, and not all companies are ready. These resources can help you build awareness and prepare for defense.

Join & Write a Comment

Improved? Move/Copy Add-in Replacement - How to avoid the annoying, “A formula or sheet you want to move or copy contains the name XXX, which already exists on the destination worksheet.” David Miller (dlmille)  It was one of those days… I wa…
Since upgrading to Office 2013 or higher installing the Smart Indenter addin will fail. This article will explain how to install it so it will work regardless of the Office version installed.
The viewer will learn how to create a normally distributed random variable in Excel, use a normal distribution to simulate the return on an investment over a period of years, Create a Monte Carlo simulation using a normal random variable, and calcul…
This Micro Tutorial will demonstrate on a Mac how to change the sort order for chart legend values and decrpyt the intimidating chart menu.

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

9 Experts available now in Live!

Get 1:1 Help Now