Como ter uma célula que exibe o valor cumulativo de todos os valores inseridos em outra célula?

1

Eu quero ter uma célula na minha planilha que atualize de forma cumulativa, em resposta a valores sendo alterados em outra célula. Qual seria o código dessa célula?

Por exemplo, o valor original da célula B2 é 3 e a célula C2 mostra o valor cumulativo de todos os números inseridos na célula B2. Portanto, inicialmente, C2 mostrará 3. Quando o valor de B2 for alterado para 10, C2 exibirá 13 e assim por diante.

    
por Josh Genon 12.09.2014 / 12:09

1 resposta

2

Isso exigirá o VBA.

Algo como isso funcionaria, ele vai no módulo Sheet1 através do editor VBA *. Você pode alterar o nome e os intervalos da folha conforme necessário. -

Sub worksheet_change(ByVal target As Range)
    If Not Intersect(target, Range("B2")) Is Nothing Then
        Range("C2") = Range("C2").Value + target.Value
    End If
End Sub

No entanto, isso causará erro se o destino for não numérico. Então você precisa lidar com os erros assim -

Sub worksheet_change(ByVal target As Range)
    If Not Intersect(target, Range("B2")) Is Nothing Then
        If IsNumeric(target.Value) = False Then GoTo Error:
        If IsNumeric(Range("C2").Value) = False Then GoTo Error:
        Range("C2") = Range("C2").Value + target.Value
        Exit Sub
    Else: Exit Sub
    End If

Error:
    MsgBox ("Use a number!")
End Sub

* Para chegar ao editor do VBA, você deve ir ao botão office, às opções do excel e, na tag popular, colocar uma marca de seleção na caixa ao lado de Show Developer tab in the Ribbon . Em seguida, feche, vá até a guia do desenvolvedor e clique no botão Visual Basic na extrema esquerda. O editor abrirá e você precisará clicar duas vezes no módulo Sheet1 (ou qualquer folha que esteja no painel) no painel esquerdo.

    
por 12.09.2014 / 13:33