Recherche cellule en défaut avec conditio et la coloriser (VBA)

Résolu/Fermé
mijean94 Messages postés 394 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 8 novembre 2021 - 10 nov. 2016 à 10:07
mijean94 Messages postés 394 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 8 novembre 2021 - 10 nov. 2016 à 19:58
Bonjour,

J’ai un tableau ou il y a que des 1 et 2.

Ce que je cherche à faire :

Pouvoir lancer une fonction contrôle qui :

Trouve dans chaque colonne si les séquences de 1 et 2 est bien toujours dans l’ordre sinon coloriser la cellule en défaut en vert.

exemple : https://www.cjoint.com/c/FKkjfwvilTt

Merci pour l'aide

Bien cordialement
A voir également:

2 réponses

yg_be Messages postés 22708 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024 1 474
10 nov. 2016 à 13:20
dans ton exemple, je ne comprends pas quel est est le critère que tu utilises exactement pour décider de la couleur d'une cellule. pourquoi e13 et g11 sont-elles différentes?
0
mijean94 Messages postés 394 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 8 novembre 2021 10
10 nov. 2016 à 13:42
Bonjour,

Merci d’avoir pris du temps sur mon sujet.

Effectivement il y a des erreurs dans mon tableau:

les cellules E13 et E15 ainsi que les cellules D14 et D17 ne devraient pas être colorisées. Mise en jaune dans le fichier joint. J’espère que ce sera plus compréhensible avec la rectification de mon erreur.

Je recherche la solution avec un code mais pas encore trouvé, car je ne maitrise pas le VBA. (Mon code est dans le fichier joint) : https://www.cjoint.com/c/FKkmI34GWAt

Bien cordialement
0
yg_be Messages postés 22708 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024 1 474
10 nov. 2016 à 15:07
Je propose de faire ainsi :
- pour identifier les "mauvais" deux, parcourir les colonnes de haut en bas, et marquer en vert les deux qui ne sont pas précédés d'un un.
- pour identifier les mauvais un, parcourir les colonnes de bas en haut, et marquer en vert les un qui ne sont pas "précédés" d'un deux

Code non testé :
For co = codeb To cofin

    ' verifions les deux
    recherche = 1 'numéro à trouver
    For li = lideb To lifin
        resultat = Cells(li, co).Value
        Select Case resultat
            Case 1:
                recherche = 2
            Case 2:
                If recherche = 1 Then
                     ' mettre la cellule en vert
                Else
                    recherche = 1
                End If
        End Select
    Next li
                   
    ' verifions les un
    recherche = 2 'numéro à trouver
    For li = lifin To lideb
        resultat = Cells(li, co).Value
        Select Case resultat
            Case 1:
                If recherche = 2 Then
                    ' mettre la cellule en vert
                Else
                    recherche = 2
                End If
            Case 2:
                recherche = 1
        End Select
    Next li
Next co
0
mijean94 Messages postés 394 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 8 novembre 2021 10
Modifié par mijean94 le 10/11/2016 à 18:17
Bonjour,

Merci pour ce travail.

La détection des 2 fonctionne bien mais pas pour les 1 , je ne comprend pas ce qu'il faudrait faire ?

Après deux heures de recherche, je viens de trouver le petit problème qui semble évident.

Si en plus j’avais fait une bonne lecture de ton message, j’aurai peut-être compris plus vite.

pour identifier les mauvais un, parcourir les colonnes de bas en haut, et marquer en vert les un qui ne sont pas "précédés" d'un deux

le code dans vérifions les un devient :

For li = lifin To lideb Step -1


Bien cordialement
0
yg_be Messages postés 22708 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024 1 474
10 nov. 2016 à 19:13
Désolé de t'avoir induit en erreur, j'ai imaginé que le vba allait deviner ce que je voulais...
Connais-tu la possibilité d’exécuter du code en mode "débogage"? Cela facilite beaucoup le travail.
0
mijean94 Messages postés 394 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 8 novembre 2021 10 > yg_be Messages postés 22708 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024
10 nov. 2016 à 19:58
Bonjour,


Tu ne m'a pas induit en erreur, l'erreur m'a fait réfléchir, et cela est toujours une bonne chose, donc merci

Pour répondre à ton interrogation, effectivement je ne connais pas la possibilité d’exécuter du code en mode "débogage"?

Je vais regarder ce point.

Bien cordialement
0