Ola Norberto muito bom seu tratamento de erros, mas eu queria justamente não envolver o usário nessa questão então desenvolvi um tratamento que grava tudo em um txt na rede:
' ---------------------------------------------------------------------------------------------------------------------------------------------------------------
' LOG DE ERROS
' by M@cSys Mai, 2012 assismacedo@hotmail.com
' ---------------------------------------------------------------------------------------------------------------------------------------------------------------
Function GravaErro(intErroNumero As Integer, strDescricao As String, strFonte As String, StrForm As String, strObs As String)
Dim F As Integer
Dim file As String
Dim fso
Dim folder As String
'
folder = "Z:\Logs" ' caminho da pasta de log de erros
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FolderExists(folder) Then
MsgBox "Pasta de Log de Erros " & folder & "\ não encontrada." & vbCrLf & "Favor comunicar o Desenvolvedor", vbInformation, "Erro"
Exit Function
End If
F = FreeFile
file = folder & "\LogError" & Format(Date, "yyyymmdd") & ".log"
Open file For Append As #F
Print #F, "Data : " & Now
Print #F, "Fonte : " & strFonte
Print #F, "Origem : " & StrForm
Print #F, "Maquina : " & Environ("Computername")
Print #F, "Usuario : " & CurrentUser()
Print #F, ""
Print #F, "Erro número : " & intErroNumero
Print #F, "Descrição : " & strDescricao
Print #F, "Retorno : " & strObs ' aqui eu queria colocar o nome do procedimento porque na chamada da função eu não precisaria editar um por um
Print #F, "-------------------------------------------------------"
Print #F, ""
Close #F
MsgBox "Erro de processamento," _
& vbCrLf & "Gravado no arquivo de Log" _
& vbCrLf & "Comunicar com o desenvolvedor." _
& vbCrLf & "Click em Ok e bom trabalho."
End Function
para chamar a função troque em: msgbox err.description por essa:
Call GravaErro(err.Number, err.Description, err.Source, Me.Name, "Comando Nome do Procedimento onde ocorreu o erro")