Small amendment needed to UDF

Ironman

Well-known Member
Joined
Jan 31, 2004
Messages
1,069
Office Version
  1. 365
Platform
  1. Windows
Hi

I was kindly given the below code by a member of the board some time ago.

VBA Code:
With Worksheets("Daily Tracking")
    uValue = Sheets("Training Log").Range("MlsYTDLessLastYr")
    Select Case uValue
        Case Is < 0
            utext = "less"
        Case Is = 0
            utext = "equal"
        Case Is > 0
            utext = "further"
    End Select
    uValue = Round(uValue, 0)
MsgBox "You have now run " & uValue & " miles " & _
        utext & " than this time last year ", vbInformation, "Mileage Compared To This Time Last Year"
End With

Range("MlsYTDLessLastYr") is as below:

Exercise Log.xlsm
CDE
5311472-161
Training Log
Cell Formulas
RangeFormula
C5C5=INDEX('Daily Tracking'!375:375,1,DailyTrackingColumn)
D5D5=INDEX('Daily Tracking'!372:372,1,DailyTrackingColumn-1)
E5E5=C5-D5


The code functions perfectly but it isn't grammatically correct when last year's mileage exceeds this year's mileage, as the message box shows a "-" value e.g. "You have now run -161 miles less than this time last year". This is because E5 has the custom format +0;-0;0 and I would like to keep it that way for clarity.

I would be grateful for an extra row of code that removes the negative symbol from the msgbox statement if the value in cell E5 is negative.

Thank you!
 
And if you remove it from a general msg and write a message for each one.

VBA Code:
Dim uValue As Double, utext As String
    uValue = Sheets("Training Log").Range("MlsYTDLessLastYr").Value
    Select Case uValue
        Case Is < 0
            msgbox "The message when less"
        Case Is = 0
            msgbox "The message when it's the same"
        Case Is > 0
            msgbox "The message when further"
    End Select
 
Upvote 0

Excel Facts

Best way to learn Power Query?
Read M is for (Data) Monkey book by Ken Puls and Miguel Escobar. It is the complete guide to Power Query.
Brilliant! That's exactly what I wanted - here it is:

VBA Code:
Dim uValue As Double, utext As String
    uValue = Sheets("Training Log").Range("MlsYTDLessLastYr").Value
    uValue = Round(uValue, 0)
    
Select Case uValue
        Case Is < 0
            MsgBox "You have now run " & Abs(uValue) & " miles less than this time last year ", vbInformation, "Mileage Compared To This Time Last Year"
            
        Case Is = 0
            MsgBox "You have now run the same number of miles as this time last year ", vbInformation, "Mileage Compared To This Time Last Year"
            
        Case Is > 0
            MsgBox "You have now run " & Abs(uValue) & " miles more than this time last year ", vbInformation, "Mileage Compared To This Time Last Year"
    End Select

Thank you so much Dante!
 
Upvote 0

Forum statistics

Threads
1,214,914
Messages
6,122,211
Members
449,074
Latest member
cancansova

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top