XL 2016 Comparer 2 valeurs dans 2 feuilles différentes

  • Initiateur de la discussion Initiateur de la discussion Au_noun
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
231
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
247
Retour