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

Visual Basic for Aplication e macros no Excel.
Regras do fórum
Sua dúvida foi respondida? Marque como RESOLVIDO em seus tópicos, usando o botão com marca verde. Imagem

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

Mensagempor gilbertjrs » Sex Jan 19, 2018 7:29 am

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:
Código: Selecionar todos
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.
gilbertjrs
Membro
Membro
 
Mensagens: 73
Registrado em: Dom Out 23, 2016 6:42 pm
Has thanked: 11 times
Have thanks: 0 time

{ SO_SELECT }

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

Mensagempor Mauro Coutinho » Sex Jan 19, 2018 9:07 am

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.
ErrorHandler_Name Macro.rar


[]s
Você não está autorizado a ver ou baixar esse anexo.
Mauro Coutinho - Moderador
São José dos Pinhais-Pr


Se a resposta foi últil para você, por gentileza, clique na mãozinha ao lado direito da sua tela. No canto superior.
Avatar do usuário
Mauro Coutinho
Ninja do Excel
Ninja do Excel
 
Mensagens: 3934
Registrado em: Sex Mar 26, 2010 9:24 pm
Localização: São José dos Pinhais - Pr
Has thanked: 181 times
Have thanks: 1447 times

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

Mensagempor alexandrevba » Sex Jan 19, 2018 9:10 am

Bom dia!!

Já tentou?
Código: Selecionar todos
Sub myMacro()
    MsgBox Application.VBE.SelectedVBComponent.Name
End Sub


Att
Espero ter Ajudado.
Se a mensagem foi util Favor Clicar na mãozinha.
Quando necessário, lembre se de marcar o tópico como [RESOLVIDO].
Avatar do usuário
alexandrevba
Membro
Membro
 
Mensagens: 9273
Registrado em: Dom Jul 03, 2011 7:45 pm
Localização: Serra - ES
Has thanked: 0 time
Have thanks: 2667 times

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

Mensagempor Mauro Coutinho » Sex Jan 19, 2018 9:35 am

De uma olhada no site abaixo tambem :

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

[]s
Mauro Coutinho - Moderador
São José dos Pinhais-Pr


Se a resposta foi últil para você, por gentileza, clique na mãozinha ao lado direito da sua tela. No canto superior.
Avatar do usuário
Mauro Coutinho
Ninja do Excel
Ninja do Excel
 
Mensagens: 3934
Registrado em: Sex Mar 26, 2010 9:24 pm
Localização: São José dos Pinhais - Pr
Has thanked: 181 times
Have thanks: 1447 times

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

Mensagempor gilbertjrs » Sex Jan 19, 2018 9:54 am

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
gilbertjrs
Membro
Membro
 
Mensagens: 73
Registrado em: Dom Out 23, 2016 6:42 pm
Has thanked: 11 times
Have thanks: 0 time

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

Mensagempor Mauro Coutinho » Sex Jan 19, 2018 10:49 am

gilbertjrs escreveu: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
Mauro Coutinho - Moderador
São José dos Pinhais-Pr


Se a resposta foi últil para você, por gentileza, clique na mãozinha ao lado direito da sua tela. No canto superior.
Avatar do usuário
Mauro Coutinho
Ninja do Excel
Ninja do Excel
 
Mensagens: 3934
Registrado em: Sex Mar 26, 2010 9:24 pm
Localização: São José dos Pinhais - Pr
Has thanked: 181 times
Have thanks: 1447 times


Voltar para VBA & Macros

Quem está online

Usuários navegando neste fórum: Castilhos e 5 visitantes