Abaixo, veremos um programa em Excel VBA que cria um tabela de média móvel. Coloque um botão de comando em sua planilha e adicione a seguinte linha de código:
Intervalo ("B3"). Valor = WorksheetFunction.RandBetween (0, 100)
Esta linha de código insere um número aleatório entre 0 e 100 na célula B3. Queremos que o Excel VBA pegue o novo valor do estoque e coloque-o na primeira posição da tabela de média móvel. Todos os outros valores devem ser movidos uma casa para baixo e o último valor deve ser excluído.
Crie um evento de alteração da planilha. O código adicionado ao Evento de Alteração da Planilha será executado pelo Excel VBA quando você alterar uma célula em uma planilha.
1. Abra o Editor do Visual Basic.
2. Clique duas vezes em Plan1 (Plan1) no Project Explorer.
3. Escolha Planilha na lista suspensa à esquerda. Escolha Alterar na lista suspensa à direita.
Adicione as seguintes linhas de código ao evento de alteração da planilha:
4. Declare uma variável chamada newvalue do tipo Integer e dois intervalos (firstfourvalues e lastfourvalues).
Dim newvalue As Integer, firstfourvalues As Range, lastfourvalues As Range
5. O evento de alteração da planilha escuta todas as alterações na Planilha1. Só queremos que o Excel VBA faça algo se algo mudar na célula B3. Para fazer isso, adicione a seguinte linha de código:
Se Target.Address = "$ B $ 3" Então
6. Inicializamos newvalue com o valor da célula B3, firstfourvalues com Range ("D3: D6") e lastfourvalues com Range ("D4: D7").
novo valor = intervalo ("B3"). Valor
Defina os primeiros quatro valores = intervalo ("D3: D6")
Definir lastfourvalues = Range ("D4: D7")
7. Agora vem o truque simples. Queremos atualizar a tabela de média móvel. Você pode conseguir isso substituindo os quatro últimos valores pelos quatro primeiros valores da tabela e colocando o novo valor do estoque na primeira posição.
lastfourvalues.Value = firstfourvalues.Value
Intervalo ("D3"). Valor = novo valor
8. Não se esqueça de fechar a instrução if.
Fim se
9. Finalmente, insira a fórmula = AVERAGE (D3: D7) na célula D8.
10. Teste o programa clicando no botão de comando.