Hi, I created an error logger after some help from a couple of forum members. Not sure if it could be better so put this up for any comment, thanks, Neil

Option Explicit
Dim wsd As Worksheet    'Object variables available throughout this module

'Procedure has error trap that calls a logging procedure (ErrorLog) that logs the error has occurred.
Sub AnyMacro()
Dim strVariable As Double

    On Error GoTo ErrTrap
    
    strVariable = 1 / 0
   
    Exit Sub    'exit sub if no error to avoid error trapping code
    
ErrTrap:

    Call ErrorLog(Err.Number, Err.Description, "AnyMacro")

End Sub
'------------------------------------------------------------

'Error log. Need to put "Call ErrorLog(Err.Number, Err.Description, "Procedure Name")" in each module error trap
'where the "Procedure Name" is the procedure name. Also need to create an error sheet called "ErrorLog"

Sub ErrorLog(errnumber As Double, ErrDesc As String, stProcName)

Dim finalrow As Double
Dim wsd As Worksheet
Set wsd = Worksheets("Errorlog")

finalrow = wsd.Cells(Application.Rows.Count, 1).End(xlUp).Row

With Sheets("ErrorLog")
    .Range("A" & finalrow).Cells(2, 1) = Date
    .Range("A" & finalrow).Cells(2, 2) = stProcName
    .Range("A" & finalrow).Cells(2, 3) = errnumber
    .Range("A" & finalrow).Cells(2, 4) = ErrDesc
End With

End Sub