Solved

VBA MsgBox if two cells are not equal to one another

Posted on 2013-11-05
6
906 Views
Last Modified: 2013-11-06
is it possible to put out an error message [box] if two cell do not equal one another.

I would like a message box to look up the word Balance and then if the cell 3 to it's right does not equal the cell 5 to the right of balance issue an error message saying Does not balance. Both cells should contain 0 and the result should be 0

Here's hoping!

Thanks
0
Comment
Question by:Jagwarman
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
6 Comments
 
LVL 10

Expert Comment

by:Anthony Berenguel
ID: 39624362
Should it look for 'balance' in the entire sheet or a specific column? Can you provide an example workbook?
0
 
LVL 48

Expert Comment

by:Dale Fye (Access MVP)
ID: 39624374
I would recommend using conditional formatting.
0
 

Author Comment

by:Jagwarman
ID: 39624457
I prefer to use vba because this is part of a much bigger VBA.

file attached. The Bals at the foot in row 50 should both be 0 which would mean the inputter has input a wrong amount somewhere.

If they insert new rows row 50 will move.

Thanks
Data-the-same-or-not.xlsx
0
Online Training Solution

Drastically shorten your training time with WalkMe's advanced online training solution that Guides your trainees to action. Forget about retraining and skyrocket knowledge retention rates.

 
LVL 81

Expert Comment

by:byundt
ID: 39624739
Here is a macro that will search column K for the word "Balance". It will then compare the cells 3 and 5 columns to the right. If they differ by more than 0.005, then a message is displayed.
Sub TestBalance()
Dim cel As Range
With ActiveSheet
    On Error Resume Next
    Set cel = .Columns("K").Find("Balance", LookAt:=xlPart)
    If Not cel Is Nothing Then
        If Abs(cel.Offset(0, 3).Value - cel.Offset(0, 5).Value) >= 0.005 Then _
            MsgBox "Does not balance"
    End If
    On Error GoTo 0
End With
End Sub

Open in new window

0
 
LVL 81

Accepted Solution

by:
byundt earned 500 total points
ID: 39624765
I added a test for whether the balance is zero or not.
Sub TestBalance()
Dim cel As Range
With ActiveSheet
    On Error Resume Next
    Set cel = .Columns("K").Find("Balance", LookAt:=xlPart)
    If Not cel Is Nothing Then
        If Abs(cel.Offset(0, 3).Value - cel.Offset(0, 5).Value) >= 0.005 Then
            MsgBox "Does not balance"
        ElseIf Abs(cel.Offset(0, 3).Value) >= 0.005 Then
            MsgBox "Balance should be zero"
        End If
    End If
    On Error GoTo 0
End With
End Sub

Open in new window

For both tests, I am looking for discrepancies larger than 0.005 to eliminate nuisance warning messages caused by truncation after 15 decimal places (the limit of Excel's accuracy).
0
 

Author Comment

by:Jagwarman
ID: 39627440
byundt this is exactly what I am looking for. Many thanks. Brilliant
0

Featured Post

Salesforce Has Never Been Easier

Improve and reinforce salesforce training & adoption using WalkMe's digital adoption platform. Start saving on costly employee training by creating fast intuitive Walk-Thrus for Salesforce. Claim your Free Account Now

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

How to get Spreadsheet Compare 2016 working with the 64 bit version of Office 2016
This article describes how you can use Custom Document Properties to store settings and other information in your workbook so that they will be available the next time you open the workbook.
This Micro Tutorial will demonstrate how to create pivot charts out of a data set. I also added a drop-down menu which allows to choose from different categories in the data set and the chart will automatically update.
Many functions in Excel can make decisions. The most simple of these is the IF function: it returns a value depending on whether a condition you describe is true or false. Once you get the hang of using the IF function, you will find it easier to us…

687 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