Private ErrorMsg As String
Sub CallerMacro()
On Error GoTo CallerMacro_Error
'do some stuf
If Not CalledMacro Then Err.Raise 99999
'some more stuff
CallerMacro_Exit:
Exit Sub
CallerMacro_Error:
MsgBox ErrorMsg, vbOKOnly + vbCritical, "Error In Application!2"
End Sub
Function CalledMacro() As Boolean
On Error GoTo CalledMacro_Error
CalledMacro = True
Debug.Print 1 / 0
CalledMacro_Exit:
Exit Function
CalledMacro_Error:
CalledMacro = False
ErrorMsg = "Error In CalledMacro" & vbNewLine & _
"Error num: " & Err.Number & vbNewLine & _
"Message: " & Err.Description
Resume CalledMacro_Exit
End Function