Requirement:
The user has a sheet which contains credits and debits for several accounts:
Customer | Amount |
ABC | 2000 |
XYZ | 3000 |
XYZ | 1000 |
ABC | 1000 |
ABC | -5000 |
XYZ | 1000 |
The user needs to match negative and positive values within each account and highlight them.
Solution:
Sub x() Dim rFind As Range, sAddr As String, r As Range, s() As String, i As Long, a, b With Range("A2", Range("A" & Rows.Count).End(xlUp)) ReDim s(1 To 2 * .Count) For Each r In .Cells Set rFind = .Find(What:=r, After:=r, LookAt:=xlWhole, searchdirection:=xlNext, _ MatchCase:=False, SearchFormat:=False) If Not rFind Is Nothing Then sAddr = rFind.Address Do If r.Offset(, 1) = -1 * rFind.Offset(, 1) Then a = Application.Match(r.Address, Application.Index(s, 1, 0), 0) b = Application.Match(rFind.Address, Application.Index(s, 1, 0), 0) If Not IsNumeric(a) And Not IsNumeric(b) Then r.Resize(, 2).Interior.Color = vbYellow rFind.Resize(, 2).Interior.Color = vbYellow i = i + 1 s(i) = r.Address s(i + 1) = rFind.Address i = i + 1 Exit Do End If End If Set rFind = .FindNext(rFind) Loop While rFind.Address <> sAddr And rFind.Address <> r.Address End If Set rFind = Nothing sAddr = "" Next r End With End Sub
Obtained from the OzGrid Help Forum.
Solution provided by StephenR.
See also: Index to Excel VBA Code and Index to Excel Freebies and Lesson 1 - Excel Fundamentals and Index to how to… providing a range of solutions and Index to new resources and reference sheets
See also:
How to sort values in positive and negative numbers with formula |
How to average both positive and negative numbers |
Click here to visit our Free 24/7 Excel/VBA Help Forum where there are thousands of posts you can get information from, or you can join the Forum and post your own questions.