Recherche partielle chaine de caractère d'une cellule

Bonjour à tous,

Ci-dessous je vous partage un fichier afin de mieux comprendre ma problématique.

Ce que je souhaite c'est pouvoir rapprocher les chaines de caractères des cellules de la colonne "Référence couleur" (feuil2) qui est ma base de données avec celles de la colonne couleurs (feuil1)

Contexte de ce que je souhaite : Si la couleur de la chaise (cellule B2 feuil1) est semblable (Plus de 4 caractères d'affilés identiques, ici H050) à la couleur en A2 feuil2 alors écrire "IDENTIQUE" dans la colonne "Situation" de la feuil1 en C2.

J'aimerais réaliser cette opération pour l'ensemble de mes éléments, sachant que dans ma colonne "Reference" l'ensemble des chaines de caractères sont toutes en majuscule et dans ma feuil 1 on peut être dans des situations où les caractères sont en minuscules.

Je vous remercie pour votre aide, j'ai essayé de faire au plus simple dans les explications...

9couleurs.xlsx (9.28 Ko)

Je pense que j'ai du mal m'exprimer dans le message ci dessous donc je vais simplifier la chose. Je vous repartage ci-dessous le même document avec quelques modifications. Existe-t-il une fonction VBA permettant de savoir si les données entre parenthèses de mes cellules de ma colonne A feuil 1 sont également présente dans les chaines de caractères de mes cellules feuil 2 ? Et si c'est le cas me retourner la valeur "correct" dans la colonne C feuil 1 ?

Merci d'avance !

9couleurs.xlsx (9.28 Ko)

bonjour,

comme ca ?

=--ESTNUM(CHERCHE(C2;Feuil2!$A$3))

5couleurs-1.xlsx (14.98 Ko)

Bonjour AdriBoulart84, BsAlv,

Avec une petite fonction VBA

Function RetourRef(sCouleur As String)
  Dim sTab() As String, sTmp As String, CelF As Range
  ' Récupérer la partie entre parenthèses
  sTab = Split(sCouleur, "(")
  sTmp = Replace(sTab(1), ")", "")
  ' Cherche la valeur dans la feuille 2
  With Sheets("Feuil2")
    Set CelF = .Range("A:A").Find(What:=sTmp, LookIn:=xlValues, LookAt:=xlPart, _
      SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False)
  End With
  ' Retour de la valeur
  If Not CelF Is Nothing Then RetourRef = CelF.Value Else RetourRef = "#Non trouvée!"
  Set CelF = Nothing
End Function

Que l'on appelle en C2 avec

=RetourRef(B2)

A+

Merci pour votre réponse rapide !

BsAlv ce que j'ai besoin c'est une fonction VBA

Bruno c'est top c'est ce qu'il me faut ! je suis en train de l'adapter à mon document original, peux-tu m'expliquer comment fonctionne la ligne sTab ?

Re,

L'instruction Split()
https://www.excel-pratique.com/fr/fonctions-vba/split

"La fonction VBA Split permet de diviser une chaîne de caractères en fonction d'un délimiteur pour obtenir un tableau de valeurs."

Donc je prends la 2ème dimension du tableau pour ne garder que ce qui se trouve après le "("

Et je supprime la parenthèse fermante avec le Replace(), on aurait pu utiliser Left()

A+

Ok super je comprends mieux merci ! En revanche dans le code que tu m'as fourni il m'indique que l'indice n'appartient pas à la sélection à cette ligne :

sTmp = Replace(sTab(1), ")", "")

Ok j'ai rien dit c'est parce que j'ai modifié la valeur de sTab en mettant "Cells(i ,1)" à la place de sCouleur. Comment j'ai possibilité d'enlever cette erreur en remplacant le scouleur par "Cells(i,1)" ?

C'est bon j'ai réussi à résoudre mon problème !! Merci pour ton aide en tout cas !

Rechercher des sujets similaires à "recherche partielle chaine caractere"