Macro de salvamento automático do Excel

0

Estou tentando criar uma macro que salva automaticamente a pasta de trabalho do Excel sempre que o valor em uma célula específica aumenta em 1.

Eu tenho o código para salvar automaticamente sempre que o celular mudar, o que vou postar abaixo;

 Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Me.Range("A2")) Is Nothing Then
        ThisWorkbook.Save
    End If
End Sub

No entanto, parece que não consigo adaptar o código para que a macro seja executada apenas quando o valor na célula aumenta em um. Ou seja, o valor da célula é 10, salve apenas a pasta de trabalho quando o valor da célula for 11 e assim por diante.

Obrigado.

    
por Victor Ferreira 05.11.2017 / 17:51

1 resposta

1

Experimente este código e reverta em caso de problemas. Uma pequena suposição ou restrição é que a planilha foi atualizada pelo menos uma vez do banco de dados e o conteúdo existente não é excluído posteriormente, apenas atualizado novamente conforme e quando necessário. No caso, se você limpar os dados depois de salvar e antes de fechar e, em seguida, abrir uma folha em branco toda vez que uma solução diferente for necessária.

ALT + F11 - > Editor VBA - > ThisWorkbook - > Geral - > Declarações

Public Prev_Val As Variant

Evento Workbook_Open ()

Private Sub Workbook_Open()
   ThisWorkbook.Prev_Val = Sheet1.Range("A2").Value
End Sub

Em Sheet1 ou qualquer que seja o seu evento Sheet Codename - Worksheet_Change (ByVal Target As Range). Substitua Sheet1 por qualquer que seja o Codename da Sheet Sheet1 ou Sheet2 ou mais.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Me.Range("A2")) Is Nothing Then
    If Sheet1.Range("A2").Value = ThisWorkbook.Prev_Val + 1 Then
        ThisWorkbook.Save

    End If
    ThisWorkbook.Prev_Val = Sheet1.Range("A2").Value
End If

End Sub

Agora, quando você abre a pasta de trabalho, a variável pública Prev_Val armazena o valor em A2 e usa-a posteriormente para comparação e continua atualizando esse valor para a atualização mais recente da A2, até você abrir a pasta de trabalho.

    
por 06.11.2017 / 03:23