Automatiser la surveillance et l’analyse des données environnementales dans Excel en utilisant VBA (Visual Basic for Applications) peut être un excellent moyen de gérer, suivre et analyser des données liées à l’environnement (température, qualité de l’air, humidité, etc.). Je vais vous donner un code VBA détaillé, accompagné d’explications, pour effectuer cette tâche.
Objectif
Nous allons créer un script VBA qui permet :
- D’importer des données environnementales depuis un fichier externe (par exemple, un fichier CSV ou une API).
- De surveiller ces données en temps réel pour détecter des anomalies (par exemple, des niveaux de pollution ou des températures trop élevées).
- D’analyser les données et de générer un rapport.
Préparer le fichier Excel
Avant de commencer à écrire le code VBA, voici la structure de votre fichier Excel :
- Feuille « Données » : Contiendra les données environnementales brutes (par exemple, température, qualité de l’air, humidité).
- Feuille « Analyse » : Affichera les résultats de l’analyse (moyennes, anomalies, alertes).
Voici un exemple de disposition des colonnes dans la feuille « Données » :
| Date | Température (°C) | Humidité (%) | Qualité de l’air (ppm) |
| 2024-11-01 | 20.5 | 60 | 25 |
| 2024-11-02 | 21.0 | 58 | 30 |
Et dans la feuille « Analyse », vous pourrez afficher les résultats comme suit :
| Analyse | Valeur |
| Température moyenne | 20.75 |
| Humidité moyenne | 59 |
| Anomalies détectées | Oui |
Code VBA pour automatiser la surveillance et l’analyse
Voici un exemple de code VBA pour importer, surveiller et analyser les données :
Sub AutomatiserSurveillance()
' Déclarations des variables
Dim wsDonnees As Worksheet
Dim wsAnalyse As Worksheet
Dim dernLigne As Long
Dim tempTotale As Double
Dim humiditeTotale As Double
Dim qualiteAirTotale As Double
Dim nbEnregistrements As Long
Dim seuilTemp As Double
Dim seuilQualiteAir As Double
Dim anomalies As String
Dim i As Long
' Initialiser les feuilles
Set wsDonnees = ThisWorkbook.Sheets("Données")
Set wsAnalyse = ThisWorkbook.Sheets("Analyse")
' Trouver la dernière ligne de données dans la feuille "Données"
dernLigne = wsDonnees.Cells(wsDonnees.Rows.Count, 1).End(xlUp).Row
' Initialiser les variables pour les calculs
tempTotale = 0
humiditeTotale = 0
qualiteAirTotale = 0
nbEnregistrements = 0
anomalies = ""
' Définir les seuils d'alerte pour les données (par exemple)
seuilTemp = 30 ' Seuil de température en °C
seuilQualiteAir = 50 ' Seuil de qualité de l'air en ppm
' Boucle pour parcourir toutes les données et effectuer les calculs
For i = 2 To dernLigne ' Commencer à la ligne 2 (en supposant que la ligne 1 contient les en-têtes)
' Accéder aux valeurs de chaque colonne
Dim temperature As Double
Dim humidite As Double
Dim qualiteAir As Double
temperature = wsDonnees.Cells(i, 2).Value
humidite = wsDonnees.Cells(i, 3).Value
qualiteAir = wsDonnees.Cells(i, 4).Value
' Calculer la somme des valeurs pour les moyennes
tempTotale = tempTotale + temperature
humiditeTotale = humiditeTotale + humidite
qualiteAirTotale = qualiteAirTotale + qualiteAir
nbEnregistrements = nbEnregistrements + 1
' Vérifier les anomalies par rapport aux seuils
If temperature > seuilTemp Then
anomalies = anomalies & "Température trop élevée le " & wsDonnees.Cells(i, 1).Value & vbCrLf
End If
If qualiteAir > seuilQualiteAir Then
anomalies = anomalies & "Qualité de l'air trop élevée le " & wsDonnees.Cells(i, 1).Value & vbCrLf
End If
Next i
' Calcul des moyennes
Dim tempMoyenne As Double
Dim humiditeMoyenne As Double
Dim qualiteAirMoyenne As Double
tempMoyenne = tempTotale / nbEnregistrements
humiditeMoyenne = humiditeTotale / nbEnregistrements
qualiteAirMoyenne = qualiteAirTotale / nbEnregistrements
' Afficher les résultats dans la feuille "Analyse"
wsAnalyse.Cells(2, 2).Value = tempMoyenne
wsAnalyse.Cells(3, 2).Value = humiditeMoyenne
wsAnalyse.Cells(4, 2).Value = qualiteAirMoyenne
' Afficher les anomalies détectées
If anomalies = "" Then
wsAnalyse.Cells(5, 2).Value = "Aucune anomalie détectée"
Else
wsAnalyse.Cells(5, 2).Value = "Anomalies détectées :"
wsAnalyse.Cells(6, 2).Value = anomalies
End If
' Message de fin
MsgBox "Surveillance terminée. Les résultats sont affichés dans l'onglet Analyse.", vbInformation
End Sub
Explication du code
- Initialisation des variables :
- Nous définissons les variables nécessaires pour stocker les données de température, d’humidité, et de qualité de l’air.
- seuilTemp et seuilQualiteAir sont des seuils d’alerte que nous définissons pour détecter des anomalies dans les données.
- Boucle pour parcourir les données :
- Le code commence à la ligne 2 pour ignorer l’en-tête.
- À chaque ligne, nous extrayons les valeurs de température, d’humidité et de qualité de l’air.
- Nous calculons les totaux pour chaque paramètre afin de pouvoir calculer la moyenne plus tard.
- Si une donnée dépasse le seuil, nous enregistrons une anomalie.
- Calcul des moyennes :
- Après la boucle, nous calculons la moyenne de chaque paramètre en divisant la somme des valeurs par le nombre d’enregistrements.
- Affichage des résultats :
- Les résultats des moyennes sont affichés dans la feuille « Analyse ».
- Les anomalies détectées sont aussi listées.
- Message final :
- Un message pop-up s’affiche pour indiquer que le processus est terminé.
Utilisation du code
- Pour exécuter ce code, vous devez ouvrir l’éditeur VBA (Alt + F11), insérer un nouveau module (dans l’éditeur, cliquez sur Insertion > Module), puis coller le code dans ce module.
- Ensuite, vous pouvez exécuter la macro en allant dans Outils > Macro > Macros, sélectionnez AutomatiserSurveillance, puis cliquez sur Exécuter.
Améliorations possibles
- Vous pouvez adapter ce code pour importer les données depuis un fichier externe (CSV, Excel, ou API web).
- Ajouter des graphiques pour mieux visualiser les données.
- Automatiser la collecte des données environnementales à intervalles réguliers en utilisant un script VBA pour interroger une API ou en chargeant un fichier à partir d’une source externe.
Ce script est un bon point de départ pour automatiser la surveillance et l’analyse des données environnementales dans Excel.