Ci-dessous, nous examinerons un programme dans Excel VBA qui crée une table moyenne mobile. Placez un bouton de commande sur votre feuille de calcul et ajoutez la ligne de code suivant:

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

Cette ligne de code entre un nombre aléatoire entre 0 et 100 dans la cellule B3. Nous voulons Excel VBA pour prendre la nouvelle valeur du stock et le placer à la première position de la table moyenne mobile. Toutes les autres valeurs doivent se déplacer vers le bas un endroit et la dernière valeur devrait être supprimée.

Rolling Average Table in Excel VBA

Rolling Average Table in Excel VBA

Créer une feuille de calcul Modifier l’événement. Code ajouté à la feuille de changement d’événement sera exécuté par Excel VBA lorsque vous modifiez une cellule sur une feuille de calcul.

  1. Ouvrez le Visual Basic Editor.

  2. Double-cliquez sur Sheet1 (Sheet1) dans le projet Explorer.

  3. Choisissez la feuille de travail dans la liste déroulante de gauche. Choisissez le changement de la droite liste déroulante.

Worksheet Change Event in Excel VBA

Ajoutez les lignes de code suivantes à la feuille de travail Modifier l’événement:

  1. déclarer une variable appelée newvalue de type Integer et deux plages (firstfourvalues ​​et lastfourvalues).

Dim newvalue As Integer, firstfourvalues As Range, lastfourvalues As Range
  1. La feuille de changement d’événement écoute tous les changements sur Sheet1. Nous voulons seulement Excel VBA pour faire quelque chose si quelque chose change dans la cellule B3. Pour ce faire, ajoutez la ligne de code suivant:

If Target.Address = "$B$3" Then
  1. Nous initialisons newvalue avec la valeur de la cellule B3, avec firstfourvalues ​​Range ( « D3: D6 ») et lastfourvalues ​​avec Range ( « D4: D7 »).

newvalue = Range("B3").Value

Set firstfourvalues = Range("D3:D6")

Set lastfourvalues = Range("D4:D7")
  1. Maintenant vient le tour de simple. Nous voulons mettre à jour la table moyenne mobile. Vous pouvez y parvenir en remplaçant les quatre dernières valeurs avec les quatre premières valeurs de la table et de placer la nouvelle valeur du stock à la première position.

lastfourvalues.Value = firstfourvalues.Value

Range("D3").Value = newvalue
  1. Ne pas oublier de fermer l’instruction if.

End if
  1. Enfin, entrez la formule = MOYENNE (D3: D7) dans la cellule D8.

  2. Tester le programme en cliquant sur le bouton de commande.