Automatisez les rapports d’analyse des données, Excel VBA
Voici un exemple de code VBA (Visual Basic for Applications) qui peut être utilisé pour automatiser les rapports d’analyse des données dans Excel. Cet exemple prend des données d’un tableau, effectue une analyse simple (comme des calculs de moyennes et de totaux), puis génère un rapport dans une nouvelle feuille.
Scénario :
Supposons que vous avez un tableau de données dans une feuille de calcul Excel avec les colonnes suivantes :
• Nom (Colonne A)
• Ventes (Colonne B)
• Coût (Colonne C)
Le but est de créer un rapport dans une nouvelle feuille qui calcule le total des ventes, le total des coûts, la moyenne des ventes et la moyenne des coûts.
Sub AutomatiserRapportAnalyse()
Dim wsData As Worksheet
Dim wsReport As Worksheet
Dim lastRow As Long
Dim totalVentes As Double
Dim totalCout As Double
Dim moyenneVentes As Double
Dim moyenneCout As Double
Dim i As Long
' Définir la feuille des données et vérifier qu'elle existe
On Error Resume Next
Set wsData = ThisWorkbook.Sheets("Données")
On Error GoTo 0
If wsData Is Nothing Then
MsgBox "La feuille 'Données' n'existe pas.", vbExclamation
Exit Sub
End If
' Trouver la dernière ligne de données dans la colonne A
lastRow = wsData.Cells(wsData.Rows.Count, "A").End(xlUp).Row
' Créer une nouvelle feuille pour le rapport
Set wsReport = ThisWorkbook.Sheets.Add
wsReport.Name = "RapportAnalyse"
' Titre du rapport
wsReport.Cells(1, 1).Value = "Rapport d'Analyse des Données"
wsReport.Cells(2, 1).Value = "Date : " & Date
wsReport.Cells(3, 1).Value = "Nom"
wsReport.Cells(3, 2).Value = "Ventes"
wsReport.Cells(3, 3).Value = "Coût"
' Copier les données de la feuille "Données" vers la feuille "RapportAnalyse"
wsData.Range("A1:C" & lastRow).Copy
wsReport.Range("A4").PasteSpecial Paste:=xlPasteValues
' Initialiser les totaux
totalVentes = 0
totalCout = 0
' Calculer les totaux et les moyennes
For i = 4 To lastRow
totalVentes = totalVentes + wsReport.Cells(i, 2).Value
totalCout = totalCout + wsReport.Cells(i, 3).Value
Next i
' Calculer les moyennes
moyenneVentes = totalVentes / (lastRow - 3)
moyenneCout = totalCout / (lastRow - 3)
' Afficher les résultats dans le rapport
wsReport.Cells(lastRow + 2, 1).Value = "Total des Ventes :"
wsReport.Cells(lastRow + 2, 2).Value = totalVentes
wsReport.Cells(lastRow + 3, 1).Value = "Total des Coûts :"
wsReport.Cells(lastRow + 3, 2).Value = totalCout
wsReport.Cells(lastRow + 4, 1).Value = "Moyenne des Ventes :"
wsReport.Cells(lastRow + 4, 2).Value = moyenneVentes
wsReport.Cells(lastRow + 5, 1).Value = "Moyenne des Coûts :"
wsReport.Cells(lastRow + 5, 2).Value = moyenneCout
' Mettre en forme le rapport
wsReport.Columns("A:C").AutoFit
wsReport.Range("A3:C" & lastRow).Borders(xlEdgeBottom).LineStyle = xlContinuous
wsReport.Range("A1:C1").Font.Bold = True
wsReport.Range("A1:C1").HorizontalAlignment = xlCenter
MsgBox "Rapport généré avec succès !", vbInformation
End Sub
Explication du code :
1. Définir les feuilles de données et de rapport :
wsData fait référence à la feuille contenant les données (nommée « Données »).
wsReport est la feuille où le rapport sera généré.
2. Vérifier la présence de la feuille des données :
Le code vérifie si la feuille « Données » existe avant de continuer. Si elle n’existe pas, il affiche un message d’erreur.
3. Déterminer la dernière ligne de données :
La variable lastRow est utilisée pour identifier la dernière ligne contenant des données dans la colonne A de la feuille « Données« .
4. Créer une nouvelle feuille pour le rapport :
Une nouvelle feuille appelée « RapportAnalyse » est créée, et un titre est ajouté à la première cellule de la feuille.
5. Copier les données :
Les données de la feuille « Données » (de A1 à C et la dernière ligne) sont copiées dans la feuille de rapport.
6. Calcul des totaux et des moyennes :
Le code effectue une boucle pour calculer le total des ventes et des coûts.
Ensuite, il calcule la moyenne des ventes et des coûts en divisant les totaux par le nombre de lignes de données.
7. Affichage des résultats :
Les résultats des calculs (totaux et moyennes) sont affichés dans le rapport à la fin des données.
8. Mise en forme :
- La colonne de données est redimensionnée pour ajuster la largeur des colonnes.
- Des bordures sont ajoutées aux lignes de données.
- Le titre du rapport est mis en gras et centré.
9. Message de confirmation :
À la fin de l’exécution, un message de confirmation est affiché à l’utilisateur pour l’informer que le rapport a été généré avec succès.
Comment utiliser ce code ?
1. Ouvrez Excel et accédez à l’éditeur VBA en appuyant sur Alt + F11.
2. Dans l’éditeur VBA, insérez un nouveau module en cliquant sur Insertion > Module.
3. Copiez et collez le code ci-dessus dans le module.
4. Exécutez le code en appuyant sur F5 ou en assignant le code à un bouton dans votre feuille Excel.
Ce code est un bon point de départ pour automatiser l’analyse des données dans un tableau Excel, et vous pouvez l’adapter pour effectuer des calculs plus complexes ou personnaliser le format du rapport selon vos besoins.