Automatisez les processus d’attribution de données, Excel VBA
Voici un exemple de code VBA (Visual Basic for Applications) pour automatiser un processus simple d’attribution de données dans un tableau Excel. L’exemple concerne l’attribution automatique de valeurs dans une colonne en fonction des données d’une autre colonne.
Scénario :
Supposons que vous avez un tableau avec des noms dans la colonne A et des scores dans la colonne B. Nous souhaitons automatiser l’attribution de grades dans la colonne C en fonction des scores dans la colonne B.
Par exemple :
• Si le score est supérieur ou égal à 90, le grade sera « A ».
• Si le score est entre 75 et 89, le grade sera « B ».
• Si le score est entre 60 et 74, le grade sera « C ».
• Si le score est inférieur à 60, le grade sera « D ».
Sub AttributionGrades()
Dim ws As Worksheet
Dim i As Long
Dim score As Double
Dim grade As String
' Référence à la feuille active
Set ws = ThisWorkbook.Sheets("Feuil1")
' Parcours des lignes du tableau (commence à la ligne 2, en supposant que la première ligne est l'entête)
For i = 2 To ws.Cells(ws.Rows.Count, "B").End(xlUp).Row
' Récupérer le score dans la colonne B
score = ws.Cells(i, 2).Value
' Attribution des grades en fonction du score
If score >= 90 Then
grade = "A"
ElseIf score >= 75 Then
grade = "B"
ElseIf score >= 60 Then
grade = "C"
Else
grade = "D"
End If
' Attribution du grade dans la colonne C
ws.Cells(i, 3).Value = grade
Next i
End Sub
Explication du code :
1. Déclaration des variables :
- ws : une variable pour référencer la feuille de calcul active où les données sont stockées.
- i : une variable pour parcourir les lignes du tableau.
- score : variable qui contiendra la valeur du score pour chaque ligne.
- grade : variable pour stocker le grade à attribuer.
2. Référence à la feuille de travail :
Set ws = ThisWorkbook.Sheets(« Feuil1 ») : cette ligne définit que nous travaillons sur la feuille « Feuil1 » du classeur actif. Vous devez ajuster le nom de la feuille si nécessaire.
3. Boucle For pour parcourir les lignes :
- La boucle commence à la ligne 2, supposant que la première ligne contient les en-têtes (noms des colonnes).
- La boucle parcourt chaque ligne de la colonne B (scores) jusqu’à la dernière ligne contenant des données (ws.Cells(ws.Rows.Count, « B »).End(xlUp).Row)
4. Condition pour l’attribution des grades :
- Le If vérifie le score dans la colonne B et assigne un grade dans la variable grade selon la valeur du score.
- Par exemple, si le score est supérieur ou égal à 90, le grade sera « A ».
5. Attribution du grade dans la colonne C :
Une fois le grade déterminé, le grade est attribué à la colonne C de la même ligne (ws.Cells(i, 3).Value = grade).
Comment l’exécuter :
1. Ouvrez votre fichier Excel.
2. Appuyez sur Alt + F11 pour ouvrir l’éditeur VBA.
3. Dans l’éditeur VBA, cliquez sur Insertion > Module pour ajouter un nouveau module.
4. Copiez et collez le code VBA dans le module.
5. Fermez l’éditeur VBA.
6. Pour exécuter le script, vous pouvez appuyer sur Alt + F8, sélectionner AttributionGrades et cliquer sur Exécuter.
Résultat attendu :
Après avoir exécuté ce script, les grades seront automatiquement remplis dans la colonne C en fonction des scores dans la colonne B.
Améliorations possibles :
• Vous pouvez ajouter des messages d’erreur ou des contrôles pour gérer les valeurs invalides dans les cellules.
• Vous pouvez automatiser le processus pour qu’il se lance à l’ouverture du fichier ou à la modification d’une cellule spécifique.