In the FirstLoad macro try using:
Sheet4.Range("AL3:AR" & rg7).Value = Sheet4.Range("AL3:AR" & rg7).Value
instead of:
Sheet4.Range("AL3:AR" & rg7).Copy
Sheet4.Range("AL3:AR" & rg7).PasteSpecial xlPasteValues
Application.CutCopyMode = False
I think you'll find you get to the same situation as after running any of the BlankCells macros on the whole range, without having to run them.