XL 2016 Comparer 2 valeurs dans 2 feuilles différentes

Au_noun

XLDnaute Nouveau
Bonjour,

Je reviens encore vers vous pour une nième fois pour un coup de pouce

Le code parcours les chaines de caractères (valeurs) de chaque cellule de la colonne C dans Feuil1 et recherche ces valeurs dans la colonne A de feuil2.

Les conditions sont :

1 - Si [la cellule de la colonne C est vide alors on met la cellule en rouge]

2- Sinon on recherche la (les) valeur(s) de la cellule dans la Feuil2!A, et Si une(les) valeur(s) ne se trouve pas dans Feuil2!A alors on met la cellule en rouge]

3 - Sinon si la valeur se trouve dans trouve dans Feuil2!A Et en plus de ça Feuil2!C < Feuil1!D, on met la cellule en Jaune sinon on laisse en blanc.

Les conditions 1 et 2 marchent parfaitement bien mais par contre j'ai essayé la condition 3, ça ne marche pas

Quelqu'un aura des suggestions à me donner ? Merci.

Je mets en pièce jointe le fichier Excel avec le résultat attendu et les explications

VB:
Sub Analyser4()

Dim x, NumRows, xPriority2, xPriority1 As Integer
Dim Cell As Range
Dim yCell As Range
Dim zCell As Range

    Application.ScreenUpdating = False
   
 'NumRows = Range("A2", Range("A2").End(xlDown)).Rows.Count
 
  'For x = 5 To NumRows

    Range("A2:C18").Interior.Color = RGB(255, 255, 255)
    For Each Cell In Range("C2:C18")
   
     'For Each yCell In Range("D" & x)
     
       'For Each zCell In Sheets("Feuil2").Range("C" & x)
     
        If IsEmpty(Cell.Value) = True Then
            'Range("C2").End(xlDown).Interior.Color = RGB(255, 0, 0)
           
            Cell.Offset(0, 0).Interior.Color = RGB(255, 0, 0)
        Else
            LesClass = Split(Cell.Value, ",")
            'xPriorityI = Split(yCell.Value, "-")(0)
            'xPriorityP = Split(zCell.Value, "-")(0)
            'xPriorityI = Mid(Range("D" & x).Value, 2, 1)
            'xPriorityP = Mid(Sheets("Feuil2").Range("C" & x).Value, 2, 1)
           
           
            For i = 0 To UBound(LesClass)
                Equiv = Application.Match(Trim(LesClass(i)), Sheets("Feuil2").Range("A2:A22"), 0)
                If IsError(Equiv) = True Then
                   NonTrouve = True
                Else
                    NonTrouve = False
           
                    Exit For
                End If
            Next i
            If NonTrouve = True Then
                Cell.Offset(0, 0).Interior.Color = RGB(255, 128, 128)
               
            'ElseIf IsError(xEquiv) = False And xPriority2 < xPriority1 Then
                'Range("A" & x).Interior.Color = RGB(224, 255, 96)
               
                'Exit For
                'Exit For
                'Exit For
               
            End If
        End If
       
        'Next
        'Next
    Next Cell
   
    'Next x
    Application.ScreenUpdating = True
End Sub
 

Pièces jointes

  • demo2.xlsb
    24.1 KB · Affichages: 10

Wayki

XLDnaute Occasionnel
Hello,
Tu quittes la boucle avant ta condition,
If NonTrouve = True Then
Cell.Offset(0, 0).Interior.Color = RGB(255, 128, 128)

Essai :
If IsError(Equiv) = True Then
Cell.Offset(0, 0).Interior.Color = RGB(255, 128, 128)
Else
Etc etc
 

Discussions similaires

Réponses
9
Affichages
232
Réponses
13
Affichages
452
Réponses
9
Affichages
285

Statistiques des forums

Discussions
298 015
Messages
1 965 154
Membres
200 864
dernier inscrit
b.sami