Développer une solution de contrôle de qualité (QC) personnalisée, Excel VBA
Voici une explication détaillée avec un code VBA pour développer une solution de contrôle de qualité (QC) personnalisée dans Excel.
Objectif :
Le but de cette solution VBA est d’aider les entreprises ou les utilisateurs à mettre en place un système de Contrôle de Qualité (QC) sur leurs données. Le QC permet de garantir que les données traitées ou saisies dans Excel respectent des normes d’exactitude, de cohérence et de validité. Cette solution permet de surveiller la qualité des données, de signaler les erreurs et de fournir des actions correctives.
Étapes :
1. Saisie et validation des données
- Les données sont placées dans une feuille Excel. Cela peut inclure des colonnes avec des données numériques, des dates, des textes ou des combinaisons de ces éléments.
- Le QC consiste à vérifier certains problèmes comme des valeurs manquantes, des types de données incorrects, des valeurs hors de portée et des doublons.
2. Définition des règles QC
-
- Des règles sont définies pour valider les données. Par exemple :
- Les données numériques doivent se situer dans une plage spécifiée.
- Les dates ne doivent pas être dans le futur.
- Les champs texte ne doivent pas contenir de caractères spéciaux.
- Il ne doit pas y avoir de doublons dans une colonne critique.
- Des règles sont définies pour valider les données. Par exemple :
3. Signalement des erreurs
- Les erreurs dans les données seront mises en évidence, et un journal des problèmes sera généré. Chaque erreur peut avoir une action corrective associée.
4. Retour d’information et rapport
- Une fois les vérifications QC effectuées, le système génère un rapport indiquant combien d’enregistrements ont été validés, combien ont échoué et les problèmes spécifiques à chaque enregistrement.
5. Sortie
- Les erreurs sont signalées dans les cellules.
- Un rapport récapitulatif des résultats du QC est généré.
Explication détaillée de la solution :
1. Données saisies Les données sont supposées être dans des colonnes d’une feuille Excel. Par exemple :
- Colonne A : ID du produit (Texte)
- Colonne B : Quantité (Numérique)
- Colonne C : Date de production (Date)
2. Critères de contrôle de qualité Pour l’exemple, les règles suivantes sont appliquées :
- ID du produit doit être unique (pas de doublons).
- Quantité doit être un nombre positif.
- Date de production ne doit pas être dans le futur.
- Les champs texte ne doivent pas contenir de caractères spéciaux.
3. Implémentation du code VBA Le code VBA suivant effectue les vérifications QC sur les données, signale les erreurs et fournit un rapport.
Code VBA pour le Contrôle de Qualité personnalisé :
Sub VerificationQualite() ' Définir la feuille de travail et la plage de données Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("Feuille1") ' Changez ici le nom de votre feuille Dim derniereLigne As Long derniereLigne = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row ' Dernière ligne avec des données ' Créer des colonnes pour les flags d'erreur ws.Cells(1, 4).Value = "Flags d'Erreur" ws.Cells(1, 5).Value = "Description d'Erreur" ' Variables pour le rapport Dim compteurValides As Long Dim compteurInvalides As Long Dim rapportErreur As String compteurValides = 0 compteurInvalides = 0 ' Boucle à travers chaque ligne et effectuer les vérifications Dim i As Long For i = 2 To derniereLigne Dim flagErreur As String Dim descriptionErreur As String flagErreur = "VALIDÉ" descriptionErreur = "" ' Vérifier l'unicité de l'ID produit (pas de doublons) If Application.CountIf(ws.Range("A2:A" & derniereLigne), ws.Cells(i, 1).Value) > 1 Then flagErreur = "INVALIDÉ" descriptionErreur = descriptionErreur & "ID produit en double; " End If ' Vérifier la validité de la quantité (doit être un nombre positif) If Not IsNumeric(ws.Cells(i, 2).Value) Or ws.Cells(i, 2).Value <= 0 Then flagErreur = "INVALIDÉ" descriptionErreur = descriptionErreur & "Quantité invalide; " End If ' Vérifier la date de production (ne doit pas être dans le futur) If IsDate(ws.Cells(i, 3).Value) Then If ws.Cells(i, 3).Value > Date Then flagErreur = "INVALIDÉ" descriptionErreur = descriptionErreur & "Date dans le futur; " End If Else flagErreur = "INVALIDÉ" descriptionErreur = descriptionErreur & "Date invalide; " End If ' Vérifier la présence de caractères spéciaux dans l'ID produit (seulement alphanumériques autorisés) If Not ws.Cells(i, 1).Value Like "*[A-Za-z0-9]*" Then flagErreur = "INVALIDÉ" descriptionErreur = descriptionErreur & "Caractères spéciaux dans l'ID produit; " End If ' Sortir les Flags d'erreur et les descriptions dans les colonnes ws.Cells(i, 4).Value = flagErreur ws.Cells(i, 5).Value = descriptionErreur ' Compter les validés et invalidés pour le rapport If flagErreur = "VALIDÉ" Then compteurValides = compteurValides + 1 Else compteurInvalides = compteurInvalides + 1 End If Next i ' Afficher le rapport récapitulatif rapportErreur = "Résumé du Contrôle de Qualité" & vbCrLf rapportErreur = rapportErreur & "Total des Enregistrements : " & derniereLigne - 1 & vbCrLf rapportErreur = rapportErreur & "Validés : " & compteurValides & vbCrLf rapportErreur = rapportErreur & "Invalides : " & compteurInvalides & vbCrLf rapportErreur = rapportErreur & "Vérification QC effectuée le " & Now & vbCrLf MsgBox rapportErreur, vbInformation, "Rapport QC" End Sub
Explication du Code :
1. Configuration :
- La feuille de travail (ws) est définie, et la dernière ligne de données est déterminée dynamiquement en fonction du contenu de la colonne A.
- Des colonnes sont créées pour les flags d’erreur (colonne D) et les descriptions d’erreur (colonne E).
2. Logique de vérification :
-
- Le code parcourt chaque ligne de la plage de données (de la ligne 2 à la dernière ligne de données).
- Pour chaque ligne, il vérifie :
- Doublons dans l’ID produit : Si l’ID produit apparaît plus d’une fois, il est signalé.
- Quantité : Si la quantité n’est pas un nombre positif, elle est signalée.
- Date de production : Si la date est dans le futur, elle est signalée.
- Caractères spéciaux dans l’ID produit : Vérifie si l’ID produit contient uniquement des caractères alphanumériques.
3. Sortie :
- Les flags (« VALIDÉ » ou « INVALIDÉ ») sont inscrits dans la colonne D.
- Les descriptions des erreurs sont inscrites dans la colonne E.
- Après avoir vérifié toutes les lignes, un rapport récapitulatif est généré et affiché dans une boîte de message, indiquant combien d’enregistrements ont été validés et combien ont échoué.
4. Flexibilité :
- Ce code peut être facilement ajusté en ajoutant ou en modifiant les vérifications QC, ou en changeant la plage de données si la structure de la feuille change.
Sortie :
- Flags d’erreur dans la colonne D : « VALIDÉ » ou « INVALIDÉ » pour chaque ligne.
- Descriptions des erreurs dans la colonne E : Explication des problèmes dans la ligne (par exemple, « ID produit en double », « Quantité invalide »).
- Rapport récapitulatif dans une boîte de message : Un résumé indiquant combien d’enregistrements ont été validés et combien ont échoué, avec des détails spécifiques sur les échecs.
Cette solution peut être facilement personnalisée pour répondre aux différents besoins des entreprises. Elle permet de simplifier le processus de vérification de la qualité des données, en particulier dans des environnements où l’exactitude est cruciale. Vous pouvez modifier les vérifications ou en ajouter d’autres selon les spécificités de votre jeu de données.