Automatiser le processus de prévision de la demande dans Excel avec VBA peut être un projet complexe, mais voici un exemple détaillé pour vous aider à démarrer. Nous allons créer un modèle simple de prévision de la demande en utilisant les fonctions VBA pour automatiser l’importation de données, la création de modèles de prévision et l’affichage des résultats.
Étapes principales :
- Importation des données de vente historiques dans Excel.
- Préparation des données pour la modélisation (nettoyage et structuration des données).
- Création d’un modèle de prévision simple (par exemple, une moyenne mobile ou une régression linéaire).
- Affichage des prévisions dans un tableau ou un graphique.
Voici un exemple d’automatisation avec un modèle de prévision de la demande basé sur une moyenne mobile. Nous utiliserons VBA pour automatiser ces étapes.
Exemple de Code VBA pour Prévision de la Demande
- Créer une macro pour importer des données
Supposons que vous avez un fichier CSV avec des données de vente historiques. Voici un code VBA pour importer ces données dans une feuille de calcul Excel.
Sub ImporterDonneesVente() Dim ws As Worksheet Dim filePath As String Dim lastRow As Long ' Choisir la feuille de calcul où vous souhaitez importer les données Set ws = ThisWorkbook.Sheets("Feuil1") ' Demander à l'utilisateur de sélectionner un fichier CSV filePath = Application.GetOpenFilename("Fichiers CSV (*.csv), *.csv", , "Sélectionner un fichier CSV") If filePath = "Faux" Then Exit Sub ' Si l'utilisateur annule ' Importer les données du fichier CSV dans la feuille de calcul active With ws.QueryTables.Add(Connection:="TEXT;" & filePath, Destination:=ws.Range("A1")) .TextFileConsecutiveDelimiter = False .TextFileTabDelimiter = False .TextFileCommaDelimiter = True .Refresh BackgroundQuery:=False End With ' Trouver la dernière ligne de données importées lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row MsgBox "Données importées jusqu'à la ligne " & lastRow End Sub
- Créer une macro pour calculer les prévisions de la demande
Imaginons que vos données de vente sont dans la colonne A et que vous souhaitez calculer la prévision basée sur une moyenne mobile sur 3 mois. Voici un exemple de code pour cela :
Sub CalculerPrevisionsDemande() Dim ws As Worksheet Dim lastRow As Long Dim periode As Integer Dim i As Long Dim somme As Double Dim prevision As Double ' Choisir la feuille de calcul où se trouvent les données Set ws = ThisWorkbook.Sheets("Feuil1") ' Trouver la dernière ligne de données lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row ' Définir la période de la moyenne mobile (ici 3 mois) periode = 3 ' Ajouter un titre pour les prévisions ws.Cells(1, 2).Value = "Prévisions Demande" ' Calculer la moyenne mobile sur 3 mois For i = periode To lastRow somme = 0 ' Somme des 3 derniers mois For j = 0 To periode - 1 somme = somme + ws.Cells(i - j, 1).Value Next j ' Calcul de la moyenne mobile prevision = somme / periode ' Affichage de la prévision dans la colonne B ws.Cells(i, 2).Value = prevision Next i MsgBox "Calcul des prévisions terminé!" End Sub
- Créer un graphique pour visualiser les prévisions
Après avoir calculé les prévisions dans la colonne B, vous pouvez ajouter un graphique pour mieux visualiser la demande réelle et les prévisions. Voici un code pour créer un graphique simple :
Sub CreerGraphique() Dim ws As Worksheet Dim lastRow As Long Dim chartObj As ChartObject ' Choisir la feuille de calcul où se trouvent les données Set ws = ThisWorkbook.Sheets("Feuil1") ' Trouver la dernière ligne de données lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row ' Créer un graphique à partir des données de vente et des prévisions Set chartObj = ws.ChartObjects.Add(Left:=100, Width:=375, Top:=75, Height:=225) With chartObj.Chart .SetSourceData Source:=ws.Range("A1:B" & lastRow) .ChartType = xlLine ' Type de graphique (ici, un graphique en ligne) .HasTitle = True .ChartTitle.Text = "Ventes et Prévisions de Demande" .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Text = "Période" .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Text = "Quantité" End With MsgBox "Graphique créé avec succès!" End Sub
Explication des codes :
- ImporterDonneesVente : Cette macro permet d’importer les données de vente à partir d’un fichier CSV dans Excel. Elle offre un dialogue pour sélectionner le fichier CSV et l’importer dans la feuille active.
- CalculerPrevisionsDemande : Cette macro calcule la prévision de la demande en utilisant une méthode de moyenne mobile sur 3 mois. Elle fait une somme des trois derniers mois de ventes, puis calcule la moyenne pour obtenir la prévision.
- CreerGraphique : Cette macro crée un graphique en ligne comparant les données réelles et les prévisions, ce qui permet de visualiser facilement les tendances de la demande.
Personnalisation :
- Vous pouvez ajuster la période de la moyenne mobile en modifiant la variable periode dans la macro CalculerPrevisionsDemande.
- Si vous souhaitez utiliser un modèle de prévision plus complexe (par exemple, la régression linéaire ou un modèle ARIMA), vous devrez intégrer des fonctions supplémentaires dans VBA ou appeler des modèles externes via une bibliothèque R ou Python.
Conclusion :
Cet exemple vous montre comment automatiser un processus de prévision de la demande en utilisant VBA dans Excel. Selon la complexité de votre problème, vous pouvez adapter le modèle de prévision ou utiliser des algorithmes plus avancés pour améliorer la précision des prévisions.