Bonsoir à tous,

Je viens vers vous car la je bugge.....

J'ai un Array du type:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
tablo = Array("Mâles", "Hongres", "Femelles", "juments")
et un split du type:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
chaine = "Pour juments de 7, 8 et 9 ans (V, U et T), n'ayant pas gagné 263.000 €"
splitchaine = Split(chaine, " ")
Je souhaite en fonction de l'Array trouver dans le split, un des 4 arguments de l'Array, mais en vain, il me renvoit "Trouvé" à chaque fois....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub Essai()
tablo = Array("Mâles", "Hongres", "Femelles", "juments")
chaine = "Pour juments de 7, 8 et 9 ans (V, U et T), n'ayant pas gagné 263.000 €"
splitchaine = Split(chaine, " ")
 
For a = LBound(tablo) To UBound(tablo)
    For s = 0 To UBound(splitchaine)
        On Error Resume Next
        If IsError(Application.Match(splitchaine(s), tablo(a), 0)) Then
        'If IsError(Application.Match(tablo(a), splitchaine(s), 0)) Then
            MsgBox "trouvé"
        Else
            MsgBox "non trouvé"
        End If
        On Error GoTo 0
    Next
Next
End Sub
J'ai également essayé de la façon "Scripting.dictionary" que est une manière élégante et relativement rapide...Il y a un truc que je n'ai pas du comprendre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
'On recherche dans chaine, la présence de mots dans tablo.
Sub recherche()
tablo = Array("Mâles", "Hongres", "Femelles", "juments")
chaine = "Pour juments de 7, 8 et 9 ans (V, U et T), n'ayant pas gagné 263.000 €"
splitchaine = Split(chaine, " ")
   Application.ScreenUpdating = False
   Set d = CreateObject("Scripting.Dictionary")
   For Each C In tablo
   d.Add C.Value, C.Value
 
   Next C
  For j = LBound(splitchaine) To UBound(splitchaine)
            If d.Exists(splitchaine(j)) Then MsgBox splitchaine(j)
        Next j
 End Sub
je sollicite votre aide pour me dépatouiller avec ces 2 solutions afin que je comprenne mon erreur dans les 2 sub

Merci d'avance
seb