Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Como tirar o looping de uma macro ativada por tempo

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
gumasky
Acabou de chegar
Acabou de chegar
Mensagens: 1
Registrado em: Sex Mai 24, 2019 11:48 am

Como tirar o looping de uma macro ativada por tempo

Mensagem por gumasky »

Eu tenho uma planilha e preciso de ajuda com as coisas a seguir:

1) primeiro quero que ela rode uma macro quando o valor de a1 for 2
2) essa macro é uma caixa de texto e a retirada de um ponto de uma célula (s2). preciso que ela rode apenas uma vez a cada 4 clicks em um botão que adiciona um na célula N2
3) preciso que o a macro de tempo pare quando o valor de a1 for diferente de 2

Essas são as macros escritas.


Sub perda()
If Range("a1") <> 2 Then
Exit Sub
End If
If Range("a1") = 2 Then
Application.EnableEvents = False
Range("s2").Value = Range("s2").Value - 1
MsgBox ("Você perdeu um ponto")
Call tempoperda
End If
Application.EnableEvents = True
End Sub


O problema com essa é que ela fica tirando pontos por sete vezes antes de parar. então já é momento de outras perdas.


Sub tempoperda()
If Range("a1") <> 2 Then
Exit Sub
ElseIf Range("a1") = 2 Then
Application.EnableEvents = False
Application.OnTime Now + TimeValue("00:00:05"), "perda"
End If
Application.EnableEvents = True
End Sub

Private Sub Worksheet_Calculate()
'Updateby Extendoffice
Dim Xrg As Range
Set Xrg = Range("a1")
If Not Intersect(Xrg, Range("a1")) Is Nothing Then
Call tempoperda
End If
End Sub
Esta aqui não está ativando a perda


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder