Développer une solution de prévision de données personnalisée, Excel VBA
Voici un guide détaillé pour développer une solution de prévision de données personnalisée en Excel VBA :
Étape 1 : Configurer le classeur Excel
Tout d’abord, assurez-vous que votre classeur Excel a la structure suivante :
1. Feuille de données : C’est là que seront stockées vos données brutes. Supposons que vous avez des données historiques pour la prévision. Les colonnes peuvent inclure « Date » (par exemple, séries temporelles) et « Valeur » (les données que vous souhaitez prévoir).
Exemple :
Date | Valeur
2021-01-01 | 100
2021-01-02 | 110
2021-01-03 | 120
2. Feuille de sortie de prévision : Cette feuille affichera les données prévues. Elle peut inclure des valeurs prédites pour des dates futures, avec des colonnes comme « Date » et « Valeur prévue. »
3. Modèle de prévision : Selon le type de modèle de prévision que vous utilisez (par exemple, régression linéaire, lissage exponentiel), vous devrez peut-être organiser les paramètres et les résultats du modèle d’une manière spécifique.
Étape 2 : Écrire le code VBA
L’étape suivante consiste à écrire le code VBA pour effectuer le calcul de prévision. Voici un exemple d’un modèle de prévision linéaire simple :
Sub ForecastData()
Dim DataRange As Range
Dim DateRange As Range
Dim ValueRange As Range
Dim ForecastRange As Range
Dim LastRow As Long
Dim ForecastPeriod As Integer
Dim X() As Double, Y() As Double
Dim Slope As Double, Intercept As Double
Dim i As Long, j As Long
Dim PredictedValue As Double
' Définir les plages
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
Set DateRange = Range("A2:A" & LastRow)
Set ValueRange = Range("B2:B" & LastRow)
ForecastPeriod = 10 ' Nombre de jours à prévoir
' Tableaux pour stocker les données pour la régression linéaire
ReDim X(1 To LastRow - 1)
ReDim Y(1 To LastRow - 1)
' Remplir les tableaux X et Y
For i = 1 To LastRow - 1
X(i) = DateRange.Cells(i + 1, 1).Value
Y(i) = ValueRange.Cells(i + 1, 1).Value
Next i
' Calculer la pente et l'ordonnée à l'origine de la droite en utilisant la fonction LINEST
Slope = Application.WorksheetFunction.LinEst(Y, X)(1, 1)
Intercept = Application.WorksheetFunction.LinEst(Y, X)(1, 2)
' Afficher les valeurs prévisionnelles
Set ForecastRange = Range("A" & LastRow + 1 & ":A" & LastRow + ForecastPeriod)
For j = 1 To ForecastPeriod
' Calculer la valeur prévisionnelle selon le modèle de régression linéaire
PredictedValue = Slope * (DateRange.Cells(LastRow, 1).Value + j) + Intercept
ForecastRange.Cells(j, 1).Value = DateRange.Cells(LastRow, 1).Value + j
ForecastRange.Cells(j, 2).Value = PredictedValue
Next j
End Sub
Étape 3 : Comprendre le Code
1. Définir les plages :
DateRange: Fait référence à la plage contenant les dates historiques.ValueRange: Fait référence à la plage contenant les valeurs historiques (les données à prévoir).LastRow: Identifie la dernière ligne des données afin que le code sache où se termine la série de données.
2. Tableaux pour la régression linéaire :
XetY: Tableaux utilisés pour stocker les données de dates et de valeurs afin de les utiliser pour le calcul de la régression linéaire.
3. Utilisation de LINEST pour la régression linéaire :
SlopeetIntercept: Ce sont les paramètres calculés par la fonctionLINESTqui modélisent la relation linéaire entre la date (variable indépendante) et les valeurs (variable dépendante).
4. Prévision des données :
- La prévision est effectuée pour un nombre de périodes (par exemple, 10 jours à venir) en fonction du modèle de régression linéaire. La date prévue est placée dans la plage de prévision, et la valeur prévue est calculée en utilisant la formule
y = mx + b(oùmest la pente, etbest l’ordonnée à l’origine).
Étape 4 : Exécuter le Code
1. Ouvrez le classeur Excel où les données sont stockées.
2. Appuyez sur Alt + F11 pour ouvrir l’éditeur VBA.
3. Dans l’éditeur, allez dans Insertion > Module et collez le code VBA dans le module.
4. Fermez l’éditeur et revenez à Excel.
5. Appuyez sur Alt + F8, sélectionnez ForecastData, puis cliquez sur « Exécuter. »
Étape 5 : Voir les Résultats
Après avoir exécuté le code, les valeurs prévues apparaîtront dans la « Feuille de sortie de prévision », à partir de la ligne sous votre dernier point de données.
Par exemple, si le dernier point de données est le 2021-01-03 et que vous prévoyez 10 jours à venir, la prévision commencera le 2021-01-04 et affichera les valeurs prédites pour chaque jour suivant.
Conclusion
Cet exemple de base démontre l’utilisation d’un modèle de régression linéaire pour la prévision des données. En fonction de vos données et du type de modèle de prévision que vous souhaitez utiliser, vous pouvez personnaliser ce code. Pour des modèles plus complexes, vous pouvez envisager d’utiliser le lissage exponentiel, les modèles ARIMA, ou d’autres techniques statistiques. L’idée principale est de comprendre les hypothèses sous-jacentes du modèle de prévision choisi et de savoir comment l’appliquer dans Excel VBA pour l’automatiser.