Exercices VBA - Consommation de Spaghetti à Dschang

Exercice 1 : Calcul de la consommation moyenne de spaghetti par habitant

Objectif : Déterminer la consommation moyenne de spaghetti par habitant dans la ville de Dschang.

  • Création du tableau :
    • Créez un tableau Excel avec les colonnes suivantes : Mois, Population, Quantité totale de spaghetti consommée (kg).
    • Remplissez ce tableau avec les données pour chaque mois de l'année.
  • Procédure VBA :
    • Définir une procédure VBA qui calcule la consommation moyenne de spaghetti par habitant pour chaque mois. La formule est : Consommation moyenne = Quantité totale consommée / Population.
    • Afficher les résultats dans une nouvelle colonne nommée Consommation moyenne (kg/habitant).
  • Afficher les résultats : Utilisez VBA pour afficher un message indiquant le mois avec la consommation moyenne la plus élevée.

Exercice 2 : Analyse de la variation mensuelle de consommation

Objectif : Analyser la variation mensuelle de la consommation de spaghetti.

  • Création du tableau : Utilisez le tableau créé dans l'Exercice 1.
  • Procédure VBA :
    • Créez une procédure VBA qui calcule la différence de consommation de spaghetti entre deux mois consécutifs.
    • Afficher cette variation dans une colonne supplémentaire nommée Variation mensuelle (kg).
  • Afficher les résultats : Utilisez VBA pour identifier et afficher le mois où la variation de consommation est la plus importante.

Exercice 3 : Visualisation de la consommation annuelle

Objectif : Créer un graphique pour visualiser la consommation annuelle de spaghetti.

  • Création du tableau : Utilisez les données de l'Exercice 1.
  • Procédure VBA :
    • Développez une procédure VBA qui génère un graphique à barres montrant la consommation totale de spaghetti pour chaque mois.
    • Insérer ce graphique sur une nouvelle feuille Excel.
  • Afficher les résultats : Le graphique doit être automatiquement mis à jour chaque fois que les données dans le tableau sont modifiées.

Exercice 4 : Prévision de la consommation de spaghetti

Objectif : Utiliser une méthode simple de prévision pour estimer la consommation future.

  • Création du tableau : Ajoutez une colonne vide Prévision consommation (kg) à la fin du tableau de l'Exercice 1.
  • Procédure VBA :
    • Créez une procédure VBA utilisant la méthode de la moyenne mobile pour prévoir la consommation de spaghetti pour les mois suivants.
    • Remplissez la colonne Prévision consommation (kg) avec les valeurs prévues.
  • Afficher les résultats : Utilisez un message VBA pour afficher la prévision pour le mois suivant.

Exercice 5 : Identification des anomalies de consommation

Objectif : Détecter les anomalies dans la consommation de spaghetti.

  • Création du tableau : Utilisez les données de l'Exercice 1.
  • Procédure VBA :
    • Créez une procédure VBA qui identifie les mois où la consommation dépasse un certain seuil (par exemple, 20% au-dessus de la moyenne annuelle).
    • Coloriez les cellules correspondantes en rouge pour signaler ces anomalies.
  • Afficher les résultats : Affichez un message listant les mois identifiés comme anormaux.

Exercice 6 : Comparaison de la consommation de spaghetti entre différents quartiers

Objectif : Comparer la consommation de spaghetti entre plusieurs quartiers de Dschang.

  • Création du tableau : Créez un tableau avec les colonnes Quartier, Population, Quantité consommée (kg), Consommation moyenne (kg/habitant).
  • Procédure VBA :
    • Créez une procédure VBA qui calcule et compare la consommation moyenne de spaghetti entre les différents quartiers.
    • Affichez les résultats dans une colonne Comparaison (kg/habitant).
  • Afficher les résultats : Utilisez VBA pour générer un graphique comparatif montrant les consommations moyennes par quartier.

Corrections VBA - Consommation de Spaghetti à Dschang

Corrections VBA - Consommation de Spaghetti à Dschang

Correction de l'Exercice 1 : Calcul de la consommation moyenne de spaghetti par habitant


Sub CalculConsommationMoyenne()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Consommation")

    Dim i As Integer
    Dim lastRow As Long
    Dim population As Double
    Dim quantiteTotale As Double
    Dim consommationMoyenne As Double

    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

    For i = 2 To lastRow ' Supposons que la première ligne est l'en-tête
        population = ws.Cells(i, 2).Value
        quantiteTotale = ws.Cells(i, 3).Value
        If population > 0 Then
            consommationMoyenne = quantiteTotale / population
            ws.Cells(i, 4).Value = consommationMoyenne
        End If
    Next i

    ' Trouver le mois avec la consommation moyenne la plus élevée
    Dim maxMoyenne As Double
    Dim moisMax As String
    maxMoyenne = Application.WorksheetFunction.Max(ws.Range("D2:D" & lastRow))
    moisMax = ws.Cells(Application.WorksheetFunction.Match(maxMoyenne, ws.Range("D2:D" & lastRow), 0) + 1, 1).Value
    
    MsgBox "Le mois avec la consommation moyenne la plus élevée est : " & moisMax

End Sub
    

Correction de l'Exercice 2 : Analyse de la variation mensuelle de consommation


Sub AnalyseVariationMensuelle()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Consommation")

    Dim i As Integer
    Dim lastRow As Long
    Dim quantitePrecedente As Double
    Dim variation As Double

    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

    For i = 3 To lastRow ' Commencer à la troisième ligne
        quantitePrecedente = ws.Cells(i - 1, 3).Value
        variation = ws.Cells(i, 3).Value - quantitePrecedente
        ws.Cells(i, 5).Value = variation
    Next i

    ' Trouver le mois avec la variation la plus importante
    Dim maxVariation As Double
    Dim moisMaxVariation As String
    maxVariation = Application.WorksheetFunction.Max(ws.Range("E3:E" & lastRow))
    moisMaxVariation = ws.Cells(Application.WorksheetFunction.Match(maxVariation, ws.Range("E3:E" & lastRow), 0) + 2, 1).Value
    
    MsgBox "Le mois avec la variation la plus importante est : " & moisMaxVariation

End Sub
    

Correction de l'Exercice 3 : Visualisation de la consommation annuelle


Sub VisualisationConsommation()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Consommation")
    Dim chartObj As ChartObject
    Dim lastRow As Long

    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

    ' Créer un graphique à barres
    Set chartObj = ws.ChartObjects.Add(Left:=100, Width:=375, Top:=50, Height:=225)
    With chartObj.Chart
        .SetSourceData Source:=ws.Range("A1:C" & lastRow)
        .ChartType = xlColumnClustered
        .HasTitle = True
        .ChartTitle.Text = "Consommation Totale de Spaghetti par Mois"
        .Axes(xlCategory, xlPrimary).CategoryNames = ws.Range("A2:A" & lastRow)
        .Axes(xlValue, xlPrimary).HasTitle = True
        .Axes(xlValue, xlPrimary).AxisTitle.Text = "Quantité Totale (kg)"
    End With
End Sub
    

Correction de l'Exercice 4 : Prévision de la consommation de spaghetti


Sub PrevisionConsommation()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Consommation")

    Dim i As Integer
    Dim lastRow As Long
    Dim moyenneMobile As Double
    Dim n As Integer

    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

    n = 3 ' Nombre de mois pour la moyenne mobile

    For i = n To lastRow
        moyenneMobile = Application.WorksheetFunction.Average(ws.Range(ws.Cells(i - n + 1, 3), ws.Cells(i, 3)))
        ws.Cells(i, 6).Value = moyenneMobile
    Next i

    MsgBox "Prévision pour le mois suivant est : " & ws.Cells(lastRow, 6).Value

End Sub
    

Correction de l'Exercice 5 : Identification des anomalies de consommation


Sub IdentifierAnomalies()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Consommation")

    Dim i As Integer
    Dim lastRow As Long
    Dim moyenneAnnuelle As Double
    Dim seuil As Double

    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    moyenneAnnuelle = Application.WorksheetFunction.Average(ws.Range("C2:C" & lastRow))
    seuil = moyenneAnnuelle * 1.2 ' 20% au-dessus de la moyenne annuelle

    For i = 2 To lastRow
        If ws.Cells(i, 3).Value > seuil Then
            ws.Cells(i, 3).Interior.Color = RGB(255, 0, 0) ' Rouge
        End If
    Next i

    MsgBox "Les anomalies ont été identifiées et colorées en rouge."

End Sub
    

Correction de l'Exercice 6 : Comparaison de la consommation de spaghetti entre différents quartiers


Sub ComparaisonConsommationQuartiers()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Quartiers")

    Dim i As Integer
    Dim lastRow As Long
    Dim consommationMoyenne As Double

    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

    For i = 2 To lastRow
        consommationMoyenne = ws.Cells(i, 3).Value / ws.Cells(i, 2).Value
        ws.Cells(i, 4).Value = consommationMoyenne
    Next i

    ' Créer un graphique comparatif
    Dim chartObj As ChartObject
    Set chartObj = ws.ChartObjects.Add(Left:=100, Width:=375, Top:=50, Height:=225)
    With chartObj.Chart
        .SetSourceData Source:=ws.Range("A1:D" & lastRow)
        .ChartType = xlColumnClustered
        .HasTitle = True
        .ChartTitle.Text = "Consommation Moyenne de Spaghetti par Quartier"
        .Axes(xlCategory, xlPrimary).CategoryNames = ws.Range("A2:A" & lastRow)
        .Axes(xlValue, xlPrimary).HasTitle = True
        .Axes(xlValue, xlPrimary).AxisTitle.Text = "Consommation Moyenne (kg/habitant)"
    End With
End Sub
    
 
Aucune note. Soyez le premier à attribuer une note !

Ajouter un commentaire

Anti-spam