Automatiser les processus de prévision de la demande, Excel VBA

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 :

  1. Importation des données de vente historiques dans Excel.
  2. Préparation des données pour la modélisation (nettoyage et structuration des données).
  3. Création d’un modèle de prévision simple (par exemple, une moyenne mobile ou une régression linéaire).
  4. 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

  1. 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
  1. 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
  1. 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 :

  1. 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.
  2. 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.
  3. 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.

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x