Notifications
Clear all

Como obter o próprio nome da macro para LOG de erro

6 Posts
2 Usuários
0 Reactions
1,679 Visualizações
(@gilbertjrs)
Posts: 77
Trusted Member
Topic starter
 

Pessoal, bom dia.

Tem alguma função do VBA para obter o próprio nome de uma macro ou função?
Quero utilizar no registro de um log de erro

Exemplo da idéia:

Sub Macro()
    On Error GoTo Erro
    
    'CÓDIGO AQUI
    
    Exit Sub
Erro:
    Call LogSave("Macro", Err.Number, Err.Description)
End Sub

Sub LogSave(ByVal nameMacro As String, ByVal errCode As Integer, errDescription As String)
    MsgBox nameMacro & vbCrLf & _
    "Erro: " & errCode & " / " & errDescription
End Sub

Desta forma o nome "Macro" seria obtido automaticamente por esta função de forma que tenha um código padrão para inserir no final de cada SUB ou FUNCTION.

 
Postado : 19/01/2018 5:29 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Baseado em uma das dicas no stackoverflow :
"How to get the procedure or function name at runtime?"
https://stackoverflow.com/questions/239 ... at-runtime

Veja se seria isto, no site tem outras rotinas, mas não cheguei a testar todas.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 19/01/2018 7:07 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Já tentou?

Sub myMacro()
    MsgBox Application.VBE.SelectedVBComponent.Name
End Sub

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 19/01/2018 7:10 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

De uma olhada no site abaixo tambem :

VBA Error Handling – A Complete Guide
https://excelmacromastery.com/vba-error-handling/

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 19/01/2018 7:35 am
(@gilbertjrs)
Posts: 77
Trusted Member
Topic starter
 

Mauro, eu baixei seu arquivo mas está dando erro na linha Application.VBE.ActiveCodePane.CodeModule.Name apesar do mesmo já estar habilitada a referência Microsoft Visual Basic for Application Extensibility 5.3.
Tentei implementar o código no meu arquivo e também apresentou falha.

Hoje a noite em casa tentarei as outras soluções deste link do Stack Overflow

 
Postado : 19/01/2018 7:54 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Mauro, eu baixei seu arquivo mas está dando erro na linha Application.VBE.ActiveCodePane.CodeModule.Name apesar do mesmo já estar habilitada a referência Microsoft Visual Basic for Application Extensibility 5.3.
Tentei implementar o código no meu arquivo e também apresentou falha.

Hoje a noite em casa tentarei as outras soluções deste link do Stack Overflow

De fato, reabri o arquivo e mostra o erro, mas se colocar para depurar, parar a macro e rodar novamente não dá erro, acho que comentaram lá sobre isto, mas no momento não tenho como ver, se não conseguir mais tarde dou uma olhada.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 19/01/2018 8:49 am