Notifications
Clear all

Executar macro em uma data específica

4 Posts
3 Usuários
0 Reactions
1,264 Visualizações
(@brunsftw)
Posts: 93
Estimable Member
Topic starter
 

Bom dia!
Gostaria de saber se existe a possibilidade de executar o código abaixo em uma data definida por mim e mante-lo permanentemente depois de executado:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim NewValue As Variant, OldValue As Variant
    If Target.Count > 1 Then Exit Sub
     'Say you want to work with the range A1:F100
    If Not Intersect(Target, Range("A1:AC370")) Is Nothing Then
        NewValue = Target.Value
        Application.EnableEvents = False
        Application.Undo
        OldValue = Target.Value
        If OldValue = "" Then
        Target.Value = NewValue
        Else: MsgBox "Você não tem permissão para alterar o conteúdo da celula.", 16, "Células Bloquadas"
        Target.Value = OldValue
        End If
        Application.EnableEvents = True
    End If
End Sub

Obrigado!

 
Postado : 11/06/2013 5:35 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde

Eu até achei algo na net que poderia te ajudar, mas o problema é que a página foi traduzida para o português e o código da macro também.

http://www.accelerated-ideas.com/pergun ... spage.aspx

Att.

 
Postado : 13/06/2013 11:30 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Não sei se entendi bem a sua pergunta, mas para a execução de uma determinada atividade no Excel; é mandatório o o mesmo esteja aberto.
Então se o objetivo é determinar um dia, e nesse dia o aplicativo/planilha se abra e execute uma atividade salve e feche novamente, não pode ser diretamente no Excel; mas em algum aplicativo/script que "rode" junto ao sistema operacional Tipo o agendador de Tarefas do Windows.
Já se o objetivo for o de executar uma tarefa; ao abrir o arquivo; e for um determinado dia ou hora; então o link postado pelo colega Patropi supre bem essa possibilidade.

 
Postado : 13/06/2013 12:47 pm
(@selmo)
Posts: 236
Reputable Member
 
Private Workbook_Open()
 If Data = Range("A1").Value Then
Call RunOnce
End If
End Sub

Sub RunOnce()
MsgBox "This macro will be executed once ...", vbOKOnly, "Only once"
Range("A1").Value = ""
End Sub

o codigo ficou assim, mas dá erro na quando executa, não entendi, sorry galera, iniciante em VBA

 
Postado : 07/08/2013 7:15 am