Notifications
Clear all

Guardar valor de de duas células e corrigir digitação errada

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

Caros foristas, boa noite!

Acho que essa rotina é bem simples, mas mesmo assim, não consegui realizar ainda.

Digamos que eu tenha uma planilha com dois saldos iniciais (células a10 e b10) e dois saldos finais (células a20 e b20) e no inicio do dia, antes de todas as movimentações eu queira actualizar os saldos inicias, digitando os valores de a20 e b20 em a10 e b10.

Pensei em ao abrir a pasta de trabalho, salvar em duas variáveis, os valores de a20 e b20 e caso o usuário digitasse em a10 e b10, valores diferentes dos armazenados nas variaveis, o excel faria a correção.

Obrigado!

 
Postado : 04/04/2018 9:22 pm
(@alminen)
Posts: 77
Trusted Member
 

É simples, sim, mas um pouco trabalhoso. Cheguei a uma solução aqui e talvez atenda. Vamos lá:

No editor VBA, abra o código da pasta de trabalho (EstaPastaDeTrabalho) e digite:

Public sht As Worksheet
Public x1 As Long
Public x2 As Long

Sub Workbook_Open()
Set sht = Sheets(1) 'Coloca-se aqui a planilha em que está a variável
x1 = sht.Range("A20").Value
x2 = sht.Range("B20").Value
sht.Range("A10").Value = x1
sht.Range("B10").Value = x2
End Sub

E no código da planilha em si (no meu caso, Planilha1):

Sub Worksheet_Change(ByVal Target As Range)
If Range("A10").Value <> ThisWorkbook.x1 Then
    Range("A10").Value = ThisWorkbook.x1
End If
If Range("B10").Value <> ThisWorkbook.x2 Then
    Range("B10").Value = ThisWorkbook.x2
End If


End Sub

Ao abrir a pasta de trabalho, o código automaticamente assume em duas variáveis (x1 e x2) os valores que estavam em A20 e B20 da planilha. Além disso, o segundo código objetiva checar, a cada alteração, os valores de A10 e B10, e caso esteja divergente o valor, ele faz a alteração.

 
Postado : 04/04/2018 10:43 pm
(@kbispos)
Posts: 0
New Member
Topic starter
 

Muito obrigado!

 
Postado : 22/04/2018 6:57 pm