Contrôle de qualité

Bonjour forum,

J’ai un feuillet dans lequel une série d’événements ont été collectés. Cependant, il arrive régulièrement que les données soient mal codées. Les 2 erreurs les plus communes :

  • Le code de la région et/ou du secteur est erronné (la combinaison des codes des col. C et D ne retrouve pas dans le feuillet : Code )
  • Erreur sur le début et/ou la fin de l’événement :
o Délai entre le début et la fin est > 3 hrs

o Délai ≤ 0.

J’aimerais développer une macro qui rehausserait les erreurs en rouge.

J’ai fourni un fichier simplifié en exemple. En réalité, il existe plus de 140 combinaisons de régions/secteurs dans le feuillet code tandis que le feuillet data peut comporter environ 200 événements.

81forum-5oct2017.xlsx (13.93 Ko)

Je vous remercie pour vos idées,

Michel

Bonjour,

Une piste à améliorer !

A mettre dans le module de la feuille "Data" :

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim Plage As Range
    Dim Cel As Range
    Dim Erreur As Boolean
    Dim I As Integer

    If Target.Count > 1 Then Exit Sub

    If Target.Column <> 2 And Target.Column <> 4 And Target.Column <> 5 Then Exit Sub

    Select Case Target.Column
        Case 2, 5
            If Not IsDate(Target.Value) Then Erreur = True
            If Cells(Target.Row, 5).Value <= Cells(Target.Row, 2).Value Then Erreur = True
            If Cells(Target.Row, 5).Value - Cells(Target.Row, 2).Value > 1 / 24 * 3 Then Erreur = True

        Case 4
            With Worksheets("Code"): Set Plage = .Range(.Cells(2, 2), .Cells(.Rows.Count, 2).End(xlUp)): End With
            Set Cel = Plage.Find(Target.Value, , xlValues, xlWhole)
            If Cel Is Nothing Then Erreur = True

    End Select

    If Cells(Target.Row, 1).Value = "" And Cells(Target.Row, 2).Value = "" _
    And Cells(Target.Row, 3).Value = "" And Cells(Target.Row, 4).Value = "" _
    And Cells(Target.Row, 5).Value = "" Then Erreur = False

    With Range(Cells(Target.Row, 1), Cells(Target.Row, 5))
        If Erreur = True Then .Interior.ColorIndex = 3 Else .Interior.ColorIndex = 0
    End With

End Sub

Salut Michel,

pour bien comprendre, tes codes REGION-SECTEUR sont-ils couplés d'office?

Y a-t-il autre chose de particulier à savoir?

L'encodage peut se faire par liste de validation ou autre pour limiter les saisies manuelles.

A+

Bonjour et bienvenue sur le forum

Bonjour à tous

Un essai clé en main. Te convient-il ?

Bye !

Bonjour à vous trois,

À Curulis57: Je te remercie pour ton intérêt. À ta question. Oui, le code des régions et des secteurs est toujours couplés.

À Thèze: Ton test sur la durée (plus de 3 hrs) est intéressant. Je vais tenter de l'inclure dans la macro que GMB a préparé.

À GMB: Ta macro me donne exactement le résultat que je veux obtenir (exception du test sur la durée > 3hrs).

Je vais tenter de l'adapter à mon fichier plus élaboré et si tout fonctionne bien, je fais signe.

Un gros merci,

Michel

Michel007 a écrit :

exception du test sur la durée > 3hrs

Oups ! Encore une étourderie...

Nouvelle version :

Bye !

Salut Michel,

Bonjour l'équipe,

petite version à moi... avec contrôles tous azimuths et listes diverses...

A tester, comme on dit!

A+

Un peu mieux encore, me semble-t-il...

Choisir une option en [A] entraîne déjà quasi tout le remplissage de la ligne.

Il manque sans doute un bouton de contrôle général...

A+

25codesmichel.xlsm (30.93 Ko)
26codesmichel.xlsm (32.03 Ko)

Bonjour à vous tous,

Tout d'abord, je tiens a vous remercier pour vos réponses et vos efforts pour m'aider. Au final, je retiens la solution de gmb dont les résultats vont exactement dans le sens de mes attentes. J'ai testé la macro - version 2 sur un cas réel et plus complexe et tout a très bien fonctionné.

Encore merci

Michel

Rechercher des sujets similaires à "controle qualite"