Moyenne mobile dans Excel VBA - Macros Excel faciles

Table des matières

Ci-dessous, nous examinerons un programme en Excel VBA qui crée un tableau des moyennes mobiles. Placez un bouton de commande sur votre feuille de calcul et ajoutez la ligne de code suivante :

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 qu'Excel VBA prenne la nouvelle valeur boursière et la place en première position du tableau des moyennes mobiles. Toutes les autres valeurs doivent descendre d'une place et la dernière valeur doit être supprimée.

Créez un événement de modification de feuille de calcul. Le code ajouté à l'événement de changement de feuille de calcul sera exécuté par Excel VBA lorsque vous modifiez une cellule sur une feuille de calcul.

1. Ouvrez l'éditeur Visual Basic.

2. Double-cliquez sur Sheet1 (Sheet1) dans l'explorateur de projet.

3. Choisissez Feuille de calcul dans la liste déroulante de gauche. Choisissez Modifier dans la liste déroulante de droite.

Ajoutez les lignes de code suivantes à l'événement de modification de feuille de calcul :

4. Déclarez une variable appelée newvalue de type Integer et deux plages (firstfourvalues ​​et lastfourvalues).

Dim newvalue As Integer, firstfourvalues ​​As Range, lastfourvalues ​​As Range

5. L'événement de changement de feuille de calcul écoute toutes les modifications sur Sheet1. Nous voulons seulement qu'Excel VBA fasse quelque chose si quelque chose change dans la cellule B3. Pour y parvenir, ajoutez la ligne de code suivante :

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

6. Nous initialisons newvalue avec la valeur de la cellule B3, firstfourvalues ​​avec Range("D3:D6") et lastfourvalues ​​avec Range("D4:D7").

nouvellevaleur = Plage("B3").Valeur
Définir firstfourvalues ​​= Range("D3:D6")
Définir les quatre dernières valeurs = Plage("D4:D7")

7. Maintenant vient le truc simple. Nous souhaitons mettre à jour le tableau des moyennes mobiles. Vous pouvez y parvenir en remplaçant les quatre dernières valeurs par les quatre premières valeurs du tableau et en plaçant la nouvelle valeur de stock en première position.

lastfourvalues.Value = firstfourvalues.Value
Plage("D3").Valeur = nouvellevaleur

8. N'oubliez pas de fermer l'instruction if.

Fin si

9. Enfin, entrez la formule =AVERAGE(D3:D7) dans la cellule D8.

10. Testez le programme en cliquant sur le bouton de commande.

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave