Bonjour à tous,
Je suis en train de faire une macro qui se base sur un tableau dynamique, et qui met en rouge les erreurs. Parmi les erreurs à détecter, j'aimerai que ma macro cherche le texte de chaque cellule d'une colonne nommée "CPY Doc Reference 3rd part" et vérifie que ce texte est contenu dans le texte de chaque cellule d'une colonne nommée "CPY Doc Reference 3rd part JSM-0241".
Par exemple :
J'ai dans ma cellule M2 le texte "J02", et dans ma cellule N2 le texte "J02J03". J'aimerais que ma macro puisse détecter que le texte "J02" est bien contenu dans "J02J03" et ne surligne pas la cellule M2 comme une erreur. J'ai regardé la fonction InStr(), mais je n'arrive pas à trouver de cas où au lieu de mentionner directement le texte, on mentionne la cellule directement, car le texte va varier d'une cellule à l'autre, et de fait ne peut être fixe.
Pour le moment, j'en suis là :
'Checking if the third part of the Company Document Reference in the column M (CPY Doc Reference 3rd part) match with the corresponding part in the JSM-0241
Dim zp As Long, ap As Integer, bp As Integer
ap = Sheets("VendorDocument").ListObjects("Table1").ListColumns("CPY Doc Reference 3rd part").Index
bp = Sheets("VendorDocument").ListObjects("Table1").ListColumns("CPY Doc Reference 3rd part JSM-0241").Index
dl = Cells(Rows.Count, ap).End(xlUp).Row
For zp = 1 To dl
If ActiveSheet.ListObjects("Table1").DataBodyRange(zp, ap).Value Like ActiveSheet.ListObjects("Table1").DataBodyRange(zp, bp) Then
Else
'Applying a red color to the cells in column M (CPY Doc Reference 3rd part) when the value in the column N (CPY Doc Reference 3rd part JSM-0241) is incorrect
ActiveSheet.ListObjects("Table1").DataBodyRange(zp, ap).Interior.Color = vbRed
End If
Next zp
Mais ça ne marche pas, la cellule est quand même surlignée en rouge lorsque son texte est contenu dans l'autre cellule.
Auriez-vous des idées ou un peu d'aider à m'apporter ?
Merci d'avance, très bonne journée à vous !