Parcourir et rechercher les chaines de caractères de plusieurs cellules

Bonjour chez forum,

Svp je reviens vers vous pour mon problème qui n'a toujours pas été résolu. J'ai vraiment besoins de votre aide

En fait, j'ai 2 feuilles. J'aimerais parcourir les chaines de caractères de chaque cellule de la colonne c dans Feuil1 et les rechercher dans la colonne A de feuil2. La condition est Si [la cellule de la colonne C est vide alors on met la cellule en rouge] Sinon [on recherche la (les) valeur(s) de la cellule dans la Feuil2, et si la valeur ne se trouve pas dans Feuil2 alors on met la rouge en rouge sinon on laisse]

Certaines cellules de la colonne C contiennent plusieurs valeurs (chaines de caractères) mais mon code parcours et recherche seulement une seule valeur (uniquement la dernière valeur et ne prends pas en compte les autres valeurs).

Sub Analyser4()
Application.ScreenUpdating = False
Range("A2:C18").Interior.Color = RGB(255, 255, 255)

For Each Cell In Range("C2:C18")

 If IsEmpty(Cell.Value) = True Then
  Cell.Offset(0, 0).Interior.Color = RGB(255, 0, 0)

Else
 LesClass = Split(Cell.Value, ",")
 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
End If
Next i
13demo2.xlsb (21.94 Ko)
  If NonTrouve = True Then
  Cell.Offset(0, 0).Interior.Color = RGB(255, 128, 128)
End If
End If
Next Cell
Application.ScreenUpdating = True
End Sub

Je mets en pièce jointe mon fichier Excel avec le résultat que j'obtiens et ce que j'aimerais avoir comme résultat.

Merci d'avance pour le coup de main!!

Bonjour Anis97

Une proposition avec la formule =cherche et des MDC

J'utilise des colonnes alternatives (que j'ai masquées) en D:X

A+

18demo2.xlsb (23.41 Ko)

Bonjour Gabin37,

Merci pour votre réponse. En fait je suis obligé de passer par VBA parce que les données variées et sont souvent massives. C'est possible d'avoir une autre alternative en VBA or corriger mon Code.

Parce que je pense que le problème se situe au niveau de

LesClass = Split(Cell.Value, ",")
For i = 0 To UBound(LesClass)
Equiv = Application.Match(Trim(LesClass(i)), Sheets("Feuil2").Range("A2:A22"), 0)

bonjour,

ajoute un exit for après cette instruction

Else
     NonTrouve = False
     exit for

Essayez d'ajouter Exit For après avoir trouvé une correspondance pour que le programme arrete de chercher et ne colore pas la cellule.

                If IsError(Equiv) = True Then
                   NonTrouve = True
                Else
                    NonTrouve = False
                    Exit For
                End If

EDIT: Bonjour H2so4, bien vu !

wow ça marche !!!!! Merci infiniment

Rechercher des sujets similaires à "parcourir rechercher chaines caracteres"