Preencha A1 até A20 com valores que se somam a 100 :
Emseguida,coloqueaseguinteMacrodeEventosnaáreadecódigodaplanilha:
PrivateSubWorksheet_Change(ByValTargetAsRange)DimrngAsRange,DeltaAsDoubleSetrng=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
Quando a macro estiver instalada e ativa, ela detectará qualquer alteração nos valores em A1 por meio de A20 e ajustará os outros valores para preservar os 100. Altere apenas um célula de cada vez.
Por ser um código de planilha, é muito fácil de instalar e usar automaticamente:
- clique com o botão direito do mouse no nome da guia próximo à parte inferior da janela do Excel
- selecione Exibir código - isso abre uma janela do VBE
- cole o material e feche a janela do VBE
Se você tiver alguma dúvida, tente primeiro 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:
- abrir as janelas do VBE como acima
- limpe o código
- feche a janela do VBE
Para saber mais sobre macros em geral, consulte:
e
Para saber mais sobre macros de eventos (código da planilha), consulte:
As macros devem estar ativadas para que isso funcione!