Notifications
Clear all

Fórmula via VBA

3 Posts
1 Usuários
0 Reactions
774 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Pessoal, bom dia,

Quero usar um código VBA para realizar alguns cálculos.

Tenho 3 colunas:

Último Valor; Valor Atual; Variação;

O "Último Valor;" é dado.

O Usuário teria a opção de preencher qualquer uma das colunas "Valor Atual;" ou "Variação;".

O VBA automaticamente calcularia a outra coluna.

Segue o exemplo em questão na planilha anexa.

Obrigado.

 
Postado : 30/11/2015 8:03 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Como não citou, implementei a rotina para efetuar os calculos digitando-se nas Colunas B e C, não restringindo somente as celulas de seu modelo, se for para ficar somente nos Ranges, é so ajustar, e se não conseguir avise.

Clique com o Botão direito na aba e selecione "Exibir Código" e cole a rotina abaixo.

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim sUltimoValor
    Dim sValorAtual
    Dim stgColuna
    
    stgColuna = Target.Column 'Numero da coluna
    
    Select Case stgColuna
    
        Case 2
            sUltimoValor = Range(Target.Address).Offset(0, -1).Value
            sValorAtual = Target.Value
        
            Application.EnableEvents = False
            Target.Offset(0, 1).Value = sValorAtual / sUltimoValor - 1
            
        Case 3
            Application.EnableEvents = False
            sUltimoValor = Range(Target.Address).Offset(0, -2).Value '1 esquerda
            sValorAtual = Target.Value
        
            Target.Offset(0, -1).Value = sUltimoValor * (1 + Target.Value)
            
        Case Else
     
    End Select

    Application.EnableEvents = True
    
End Sub
 
Postado : 30/11/2015 1:25 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Perfeito!

Muito Obrigado, Mauro.

 
Postado : 30/11/2015 3:41 pm