Nous examinerons un programme dans Excel VBA qui crée un tableau de moyenne mobile. Placez un bouton de commande sur votre feuille de calcul et ajoutez la ligne de code suivante:
Range ("B3"). Valeur = 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 de stock et la place à la première position du tableau des moyennes mobiles. Toutes les autres valeurs doivent descendre d’un endroit 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 modification de la feuille de calcul sera exécuté par
Excel VBA lorsque vous modifiez une cellule d’une feuille de calcul.
1. Ouvrez l’éditeur Visual Basic.
2. Double-cliquez sur Feuil1 (Feuil1) dans l’Explorateur de projets.
3. Choisissez Feuille de travail 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 la feuille de calcul:
4. Déclarez une variable appelée newvalue de type Integer et deux plages (firstfourvalues et lastfourvalues).
Dim nouvellevaleur As Integer, quatrepremirevaleur As Range, quatrederniervaleur As Range
5. L’événement de modification de la feuille de calcul écoute toutes les modifications de la feuille Feuil1. Nous voulons uniquement qu’Excel VBA fasse quelque chose si quelque chose change dans la cellule B3. Pour ce faire, ajoutez la ligne de code suivante:
If 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 = Range("B3").Value Set quatrepremirevaleur = Range("D3:D6") Set quatrederniervaleur = Range("D4:D7")
7. Voici maintenant l’astuce simple. Nous voulons 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 à la première position.
quatrederniervaleur.Value = quatrepremirevaleur.Value Range("D3").Value = nouvellevaleur
8. N’oubliez pas de fermer la déclaration if.
End if
9. Enfin, entrez la formule = MOYENNE (D3: D7) dans la cellule D8.
10. Testez le programme en cliquant sur le bouton de commande.