/ / Rolling Average no Excel VBA

Média Móvel no Excel VBA

Abaixo, vamos olhar para um programa em Excel VBA que cria um tabela média de rolamento. Coloque um botão de comando em sua planilha e adicione a seguinte linha de código:

Range("B3").Value = WorksheetFunction.RandBetween(0, 100)

Esta linha de código insere um número aleatório entre 0e 100 na célula B3. Queremos que o Excel VBA tome o novo valor de estoque e coloque-o na primeira posição da tabela de média móvel. Todos os outros valores devem descer um lugar e o último valor deve ser excluído.

Tabela Média Contínua no Excel VBA

Tabela Média Contínua no Excel VBA

Crie um evento de alteração de planilha. Código adicionado ao evento de alteração de planilha será executado pelo Excel VBA quando você altera uma célula em uma planilha.

1. Abra o Editor do Visual Basic.

2. Clique duas vezes na Planilha1 (Planilha1) no Explorador de Projetos.

3. Escolha Planilha na lista suspensa à esquerda. Escolha Alterar na lista suspensa à direita.

Evento de Alteração de Planilha no Excel VBA

Adicione as seguintes linhas de código ao evento de alteração de 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 folha de cálculo escuta todas as alterações na Folha1. Queremos apenas que o Excel VBA faça alguma coisa se algo mudar na célula B3. Para conseguir isso, adicione a seguinte linha de código:

If Target.Address = "$B$3" Then

6. Inicializamos o novo valor com o valor da célula B3, firstfourvalues ​​com Range ("D3: D6") e lastfourvalues ​​com Range ("D4: D7").

newvalue = Range("B3").Value
Set firstfourvalues = Range("D3:D6")
Set lastfourvalues = Range("D4:D7")

7. Agora vem o truque simples. Queremos atualizar a tabela da média móvel. Você pode conseguir isso substituindo os últimos quatro valores pelos quatro primeiros valores da tabela e colocando o novo valor do estoque na primeira posição.

lastfourvalues.Value = firstfourvalues.Value
Range("D3").Value = newvalue

8. Não se esqueça de fechar a declaração if.

End if

9. Finalmente, insira a fórmula = AVERAGE (D3: D7) na célula D8.

10. Teste o programa clicando no botão de comando.

Leia também: