Notifications
Clear all

Bloquear Macro após executá-la

3 Posts
2 Usuários
0 Reactions
1,017 Visualizações
(@duufgr)
Posts: 0
New Member
Topic starter
 

Boa tarde,

Tenho uma planilha na qual uma macro é executado a partir de uma imagem. A macro é bem simples e serve apenas para adicionar uma linha abaixo de um range pré-definido, e funciona perfeitamente. Estou precisando inserir ao final do código, algum comando que faça o bloqueio desta macro (ou bloqueio geral de macros), de modo a permitir executá-la uma única vez. Posteriormente, através de uma outra macro, habilitar a função desta.

Resumindo: Clico na imagem, a macro é executada, adiciona a linha e bloqueia o acesso a mesma. Ainda nesta linha, posteriormente, adicionar uma nova macro para que seja habilitado/permitido a execução da primeira.

Procurei a tarde toda em fóruns e no Google alguma função ou procedimento que pudesse fazer isto, mas não encontrei. Se alguém puder dar um auxílio, ficarei muito grato!

Obrigado e um excelente fim de tarde a todos.

 
Postado : 09/12/2014 2:08 pm
(@selmo)
Posts: 236
Reputable Member
 

Então, apenas um iniciante em Vba, mas acredito que seria simplês eu acho:
Crie um rotina que salve em algum trecho da planilha algo como "Executado", de forma que seja gravado assim que executar a macro, então uma simplês rotina de verificação antes da macro, algo do tipo:

Dim Verificar As String
Verificar = Worksheets("plan1").Range("A1").Value

If Verificar = "Executado" Then
MsgBox "Macro bloqueada"
Exit Sub 'termina a macro
Else
Worksheets("plan1").Range("A1").Value = "Executado" 'grava Executado e impede de executa-la novamente
End If
'aqui entra o código da sua macro

e no evento abrir do Workbook, adicione o evento para limpar a celula e permitir a execução da macro uma unica vez

Private Sub Workbook_open()
Worksheets("plan1").Range("A1").Value = "" 'limpa a seleção ao abrir a planilha
End Sub
 
Postado : 09/12/2014 3:10 pm
(@duufgr)
Posts: 0
New Member
Topic starter
 

Selmo, usei seu código e criei as rotinas... BATATA!

Muito obrigado. :D

 
Postado : 09/12/2014 11:41 pm