I am using the following to code with a warning message. However this warning message appears each time the macro is run? Can this be modified in such a manner so that it will show the warning message only once for first time it is run on each opening of WB?

Sub mln() 
Dim a 
a = MsgBox("Please note that this will replace formulae with value.So you are requested to run this on a copy of the file.", vbYesNo + vbExclamation, "Important") 
 If a = vbYes Then 
For Each c In Selection 
 
    c.Value = Application.WorksheetFunction.Round(c / 1000000, 2) 
Next c 
 End If 
 
End Sub
Also posted here
http://www.mrexcel.com/board2/viewtopic.php?t=284973

A solution to this was provided at mrexcel,but not able to run the code. I dont know whether the code is running well or not as I am not able to run the code. Can someone here please help me to run the code?

Actually now the problem to me is the "flag" concept. What is this & how can I use this to run the code?

The code provided there is

Option Explicit 
 
Private Sub Workbook_Open() 
    Dim rFlag  As Range 
    Dim a 
 
    Set rFlag = Sheet1.Cells(.Rows.Count, .Columns.Count) 
 
    If rFlag.Value + "" Then 
        a = MsgBox("Please note that this will replace formulae with value.So you are requested to run this on a copy of the file.", vbYesNo + vbExclamation, "Important") 
        If a = vbYes Then 
            'this code will not convert to value! 
            'For Each c In Selection 
            '    c.Value = Application.WorksheetFunction.Round(c / 1000000, 2) 
            'Next c 
            'this will 
            Worksheets.Select 
            Cells.Select 
            Selection.Copy 
            Selection.PasteSpecial Paste:=xlPasteValues 
            ActiveSheet.Select 
            Application.CutCopyMode = False 
            'set flag 
            rFlag.Value = 1 
        Else: End 
        End If 
    End If 
End Sub