Moyenne mobile dans Excel VBA
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.
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.
-
Ouvrez le Visual Basic Editor.
-
Double-cliquez sur Sheet1 (Sheet1) dans le projet Explorer.
-
Choisissez la feuille de travail dans la liste déroulante de gauche. Choisissez le changement de la droite liste déroulante.
Ajoutez les lignes de code suivantes à la feuille de travail Modifier l’événement:
-
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
-
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
-
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")
-
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
-
Ne pas oublier de fermer l’instruction if.
End if
-
Enfin, entrez la formule = MOYENNE (D3: D7) dans la cellule D8.
-
Tester le programme en cliquant sur le bouton de commande.