Tenho uma coluna com 3 células: A1, A2 e A3. Quero que o total numérico das 3 células permaneça constante à medida que aumento ou diminuo qualquer uma das 3 células. Ou seja, preciso que qualquer aumento ou diminuição de qualquer célula seja distribuído uniformemente entre as outras 2 células. Por exemplo, começo com 3 + 5 + 2 = 10. Mudo 5 para 6, então tenho 2,5 + 6 + 1,5 = 10 automaticamente. Tenha em mente que na verdade terei cerca de 20 células que quero equivaler a 100 constantes.
Responder1
PreencherA1atravésA20com valores que somam100:
Depois coloque o seguinteMacro de eventona área de código da planilha:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range, Delta As Double
Set rng = Range("A1:A20")
If Intersect(Target, rng) Is Nothing Then Exit Sub
Delta = (100 - Range("A21").Value) / 19
Application.EnableEvents = False
For Each r In rng
If r.Address <> Target.Address Then
r.Value = r.Value + Delta
End If
Next r
Application.EnableEvents = True
End Sub
Assim que a macro estiver instalada e ativa, ela detectará qualquer alteração nos valores emA1atravésA20e ajuste os outros valores para preservar 100. Altere apenas uma célula por vez.
Por ser um código de planilha, é muito fácil de instalar e automático de usar:
- clique com o botão direito no nome da guia próximo à parte inferior da janela do Excel
- selecione Ver código - isso abre uma janela VBE
- cole o material e feche a janela do VBE
Se você tiver alguma dúvida, primeiro experimente em uma planilha de teste.
Se você salvar a pasta de trabalho, a macro será salva com ela. Se você estiver usando uma versão do Excel posterior a 2003, deverá salvar o arquivo como .xlsm em vez de .xlsx
Para remover a macro:
- abra as janelas VBE como acima
- limpar o código
- feche a janela do VBE
Para saber mais sobre macros em geral, consulte:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
e
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
Para saber mais sobre macros de eventos (código de planilha), consulte:
http://www.mvps.org/dmcritchie/excel/event.htm
As macros devem estar habilitadas para que isso funcione!