Recherche cellule en défaut avec conditio et la coloriser (VBA) [Résolu/Fermé]

Signaler
Messages postés
341
Date d'inscription
mercredi 16 décembre 2015
Statut
Membre
Dernière intervention
7 novembre 2019
-
mijean94
Messages postés
341
Date d'inscription
mercredi 16 décembre 2015
Statut
Membre
Dernière intervention
7 novembre 2019
-
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 : http://www.cjoint.com/c/FKkjfwvilTt

Merci pour l'aide

Bien cordialement

7 réponses

Messages postés
9118
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 décembre 2019
467
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?
mijean94
Messages postés
341
Date d'inscription
mercredi 16 décembre 2015
Statut
Membre
Dernière intervention
7 novembre 2019
7
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) : http://www.cjoint.com/c/FKkmI34GWAt

Bien cordialement
Messages postés
9118
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 décembre 2019
467
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
mijean94
Messages postés
341
Date d'inscription
mercredi 16 décembre 2015
Statut
Membre
Dernière intervention
7 novembre 2019
7
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
yg_be
Messages postés
9118
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 décembre 2019
467
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.
mijean94
Messages postés
341
Date d'inscription
mercredi 16 décembre 2015
Statut
Membre
Dernière intervention
7 novembre 2019
7 > yg_be
Messages postés
9118
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 décembre 2019

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