Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Nombre de mot dans un champ

7 réponses
Avatar
Pierre CFI [mvp]
Bonjour
un peu tordu, mais je sais qu'il y en a ici :o))
dans un table, j'ai un champ ou l'on trouve 1 2 ou 3 mots
ces mots peuvent se retrouver dans un champ d'une autre table
si j'en retrouve 2 c'est bon, les enregistrements correspondent
table1, champ1
"grand arbre"
table2 champ 1
"arbre qui est grand"
ici c'est bon, on a arbre et grand
pas evident, car il y a 20 000 enr
à votre bon coeur

--
Pierre SALAUN
MVP Access
*******************************************************

7 réponses

Avatar
Raymond [mvp]
Bonjour Pierre.

c'est tout ce que tu as à poser comme question ? c'est temps que tu te
reposes ce ouik-ande.
les deux mots, faut qu'ils soient dans un ordre précis ou comme tu as
indiqué dans ton exemple ?
il faut tenir compte également que si tu as dans la 1ere table, "petit
arbre", ça doit marcher aussi car dans quelques années, l'arbre va grandir
et ton égalité va se vérifier. c'est bien ça ?

--
@+
Raymond Access MVP http://OfficeSystemAccess.seneque.net/
http://officesystem.access.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/


"Pierre CFI [mvp]" a écrit dans le message de
news:
| Bonjour
| un peu tordu, mais je sais qu'il y en a ici :o))
| dans un table, j'ai un champ ou l'on trouve 1 2 ou 3 mots
| ces mots peuvent se retrouver dans un champ d'une autre table
| si j'en retrouve 2 c'est bon, les enregistrements correspondent
| table1, champ1
| "grand arbre"
| table2 champ 1
| "arbre qui est grand"
| ici c'est bon, on a arbre et grand
| pas evident, car il y a 20 000 enr
| à votre bon coeur
|
| --
| Pierre SALAUN
| MVP Access
| *******************************************************
|
|
Avatar
Raymond [mvp]
je ne vais pas te faire attendre plus longtemps, vu que personne n'est tordu
ici, tu vois bien !

Dim T As Variant
Dim I As Integer
Dim C As Integer
C = 0
T = Split(Me.Texte1, " ")
For I = 0 To UBound(T) - 1
If InStr(1, Me.Texte2, T(1)) > 0 Then
C = C + 1
End If
Next I
If C > 1 Then
MsgBox ("youpiii")
Else
MsgBox "bof bof..."
End If

je n'ai pas trouvé plus tordu.
--
@+
Raymond Access MVP http://OfficeSystemAccess.seneque.net/
http://officesystem.access.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/


"Pierre CFI [mvp]" a écrit dans le message de
news:
| Bonjour
| un peu tordu, mais je sais qu'il y en a ici :o))
| dans un table, j'ai un champ ou l'on trouve 1 2 ou 3 mots
| ces mots peuvent se retrouver dans un champ d'une autre table
| si j'en retrouve 2 c'est bon, les enregistrements correspondent
| table1, champ1
| "grand arbre"
| table2 champ 1
| "arbre qui est grand"
| ici c'est bon, on a arbre et grand
| pas evident, car il y a 20 000 enr
| à votre bon coeur
|
| --
| Pierre SALAUN
| MVP Access
| *******************************************************
|
|
Avatar
Pierre CFI [mvp]
ah bon ! c'est tout ? c'est quoi ce bazard
çà cherche quoi dans quoi ???
Raymond, au coin
je crois avoir trouvé quelque chose
sauf que dans like je me mélange avec les espaces et *
regarde
Sub ChercheMot()
Dim c As Integer, i As Integer
Dim deb As Integer
Dim str(2) As String
Dim bd As DAO.Database
Dim enr As DAO.Recordset
Dim Nomtable As String
Dim enrcible As DAO.Recordset
Dim StrSource As String, Veriftable
Dim T As Long, Cpt As Long, Tot As Long
Dim crit As String
Set bd = CurrentDb
'// ici on peut faire avec inputbox comme autre fois
'// pas oublier d'ajouter des Dim

Nomtable = InputBox("Saisir le nom de la table source", "Traitement
action 2")
If Nomtable = "" Then
MsgBox "Action annulée"
Exit Sub
End If
'On Error Resume Next
Set Veriftable = bd.TableDefs(Nomtable)
If Veriftable Is Nothing Then
MsgBox "Nom de table incorrect"
Exit Sub
End If
'On Error GoTo bye




Set enr = bd.OpenRecordset("select [company name] from [" & Nomtable &
"]")
'// Pierre pour compter le nb d'enregistrements
If Not enr.EOF Then
enr.MoveLast
enr.MoveFirst
Tot = enr.RecordCount
End If
SysCmd acSysCmdInitMeter, "Traitement", Tot
'//************

Do Until enr.EOF
c = 1
i = 0
deb = 0
str(0) = ""
str(1) = ""
str(2) = ""

StrSource = Nz(enr("company name"), "")
If StrSource <> "" Then
'// on bloque a 2 car le tableau str(2) 0 inclus
Do Until (c = 0 Or i = 2)
c = InStr(c + 1, StrSource, " ")
If c <> 0 Then
'If deb > Len(StrSource) - 1 Then Exit Do
str(i) = Replace(Mid(StrSource, deb + 1, c - deb - 1),
"'", "")
ElseIf c = 0 Then
'// ici un seul mot
str(0) = StrSource
End If
deb = deb + c
i = i + 1
Loop
Debug.Print " mot 0 " & str(0) & " mot 1 " & str(1) & " mot 2 "
& str(2)
End If
'*********************
T = T + 1
'Debug.Print T
DoEvents
'// Pierre********* affiche la progression
SysCmd acSysCmdSetStatus, "Avancement " & T & " / " & Tot & " dans " &
"" & " *** " & Cpt & " traités"

If StrSource <> "" Then
Debug.Print "'*" & str(0) & " *" & IIf(str(1) = "", "", str(1) & " *") &
IIf(str(2) = "", "", str(2) & " *") & "'"

Set enrcible = bd.OpenRecordset("select [inac name], [account name]
from Master where [account name] like '*" & str(0) & " *" & IIf(str(1) = "",
"", " " & str(1) & " *") & IIf(str(2) = "", "", " " & str(2) & " *") & "'")

Do Until enrcible.EOF
Cpt = Cpt + 1
'Debug.Print cpt
Debug.Print enrcible("account name") & " ---- " & StrSource
'If Nz(enrcible("inac name"), "") = "" Or enrcible("inac
name") = "" Then
'cptm = cptm + 1
'enrcible.Edit
'enrcible("inac name") = Strsource
'enrcible.Update
'Else
'enr.Edit
'enr("company name") = enrcible("inac name")
'enr.Update
'End If
enrcible.MoveNext

Loop
enrcible.Close
End If
'*****************************





enr.MoveNext
Loop
byebye:
'// activer si on veut effacer le message
'SysCmd acSysCmdRemoveMeter
MsgBox Cpt
'MsgBox Cpt & " account name semblables " & cptm & " inac name vides
puis modifiés"
Set enrcible = Nothing
Set enrcible = Nothing
enr.Close

Set enr = Nothing
Set bd = Nothing

Exit Sub
bye:
MsgBox Error$ & vbCrLf & "Vous avez pensé à ajouter un champ
'traitement' numeric"
Resume byebye




End Sub


--
Pierre SALAUN
MVP Access
*******************************************************

"Raymond [mvp]" a écrit dans le message de news:

je ne vais pas te faire attendre plus longtemps, vu que personne n'est
tordu
ici, tu vois bien !

Dim T As Variant
Dim I As Integer
Dim C As Integer
C = 0
T = Split(Me.Texte1, " ")
For I = 0 To UBound(T) - 1
If InStr(1, Me.Texte2, T(1)) > 0 Then
C = C + 1
End If
Next I
If C > 1 Then
MsgBox ("youpiii")
Else
MsgBox "bof bof..."
End If

je n'ai pas trouvé plus tordu.
--
@+
Raymond Access MVP http://OfficeSystemAccess.seneque.net/
http://officesystem.access.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/


"Pierre CFI [mvp]" a écrit dans le message
de
news:
| Bonjour
| un peu tordu, mais je sais qu'il y en a ici :o))
| dans un table, j'ai un champ ou l'on trouve 1 2 ou 3 mots
| ces mots peuvent se retrouver dans un champ d'une autre table
| si j'en retrouve 2 c'est bon, les enregistrements correspondent
| table1, champ1
| "grand arbre"
| table2 champ 1
| "arbre qui est grand"
| ici c'est bon, on a arbre et grand
| pas evident, car il y a 20 000 enr
| à votre bon coeur
|
| --
| Pierre SALAUN
| MVP Access
| *******************************************************
|
|




Avatar
Raymond [mvp]
C'est une usine à gaz que tu développes ?
en diagonale, en fin de compte tu veux retenir quoi de ton test ? les champs
identiques pour les placer dans une requête ? si tu as plus de 3 mots tu
fais quoi ?
tout ça me semble bien compliqué.

--
@+
Raymond Access MVP http://OfficeSystemAccess.seneque.net/" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://OfficeSystemAccess.seneque.net/
http://officesystem.access.over-blog.com/" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://officesystem.access.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info/


"Pierre CFI [mvp]" a écrit dans le message de
news: %
| ah bon ! c'est tout ? c'est quoi ce bazard
| çà cherche quoi dans quoi ???
| Raymond, au coin
| je crois avoir trouvé quelque chose
| sauf que dans like je me mélange avec les espaces et *
| regarde
| Sub ChercheMot()
| Dim c As Integer, i As Integer
| Dim deb As Integer
| Dim str(2) As String
| Dim bd As DAO.Database
| Dim enr As DAO.Recordset
| Dim Nomtable As String
| Dim enrcible As DAO.Recordset
| Dim StrSource As String, Veriftable
| Dim T As Long, Cpt As Long, Tot As Long
| Dim crit As String
| Set bd = CurrentDb
| '// ici on peut faire avec inputbox comme autre fois
| '// pas oublier d'ajouter des Dim
|
| Nomtable = InputBox("Saisir le nom de la table source", "Traitement
| action 2")
| If Nomtable = "" Then
| MsgBox "Action annulée"
| Exit Sub
| End If
| 'On Error Resume Next
| Set Veriftable = bd.TableDefs(Nomtable)
| If Veriftable Is Nothing Then
| MsgBox "Nom de table incorrect"
| Exit Sub
| End If
| 'On Error GoTo bye
|
|
|
|
| Set enr = bd.OpenRecordset("select [company name] from [" & Nomtable &
| "]")
| '// Pierre pour compter le nb d'enregistrements
| If Not enr.EOF Then
| enr.MoveLast
| enr.MoveFirst
| Tot = enr.RecordCount
| End If
| SysCmd acSysCmdInitMeter, "Traitement", Tot
| '//************
|
| Do Until enr.EOF
| c = 1
| i = 0
| deb = 0
| str(0) = ""
| str(1) = ""
| str(2) = ""
|
| StrSource = Nz(enr("company name"), "")
| If StrSource <> "" Then
| '// on bloque a 2 car le tableau str(2) 0 inclus
| Do Until (c = 0 Or i = 2)
| c = InStr(c + 1, StrSource, " ")
| If c <> 0 Then
| 'If deb > Len(StrSource) - 1 Then Exit Do
| str(i) = Replace(Mid(StrSource, deb + 1, c - deb - 1),
| "'", "")
| ElseIf c = 0 Then
| '// ici un seul mot
| str(0) = StrSource
| End If
| deb = deb + c
| i = i + 1
| Loop
| Debug.Print " mot 0 " & str(0) & " mot 1 " & str(1) & " mot 2 "
| & str(2)
| End If
| '*********************
| T = T + 1
| 'Debug.Print T
| DoEvents
| '// Pierre********* affiche la progression
| SysCmd acSysCmdSetStatus, "Avancement " & T & " / " & Tot & " dans " &
| "" & " *** " & Cpt & " traités"
|
| If StrSource <> "" Then
| Debug.Print "'*" & str(0) & " *" & IIf(str(1) = "", "", str(1) & " *")
&
| IIf(str(2) = "", "", str(2) & " *") & "'"
|
| Set enrcible = bd.OpenRecordset("select [inac name], [account name]
| from Master where [account name] like '*" & str(0) & " *" & IIf(str(1) =
"",
| "", " " & str(1) & " *") & IIf(str(2) = "", "", " " & str(2) & " *") &
"'")
|
| Do Until enrcible.EOF
| Cpt = Cpt + 1
| 'Debug.Print cpt
| Debug.Print enrcible("account name") & " ---- " & StrSource
| 'If Nz(enrcible("inac name"), "") = "" Or enrcible("inac
| name") = "" Then
| 'cptm = cptm + 1
| 'enrcible.Edit
| 'enrcible("inac name") = Strsource
| 'enrcible.Update
| 'Else
| 'enr.Edit
| 'enr("company name") = enrcible("inac name")
| 'enr.Update
| 'End If
| enrcible.MoveNext
|
| Loop
| enrcible.Close
| End If
| '*****************************
|
|
|
|
|
| enr.MoveNext
| Loop
| byebye:
| '// activer si on veut effacer le message
| 'SysCmd acSysCmdRemoveMeter
| MsgBox Cpt
| 'MsgBox Cpt & " account name semblables " & cptm & " inac name vides
| puis modifiés"
| Set enrcible = Nothing
| Set enrcible = Nothing
| enr.Close
|
| Set enr = Nothing
| Set bd = Nothing
|
| Exit Sub
| bye:
| MsgBox Error$ & vbCrLf & "Vous avez pensé à ajouter un champ
| 'traitement' numeric"
| Resume byebye
|
|
|
|
| End Sub
|
|
| --
| Pierre SALAUN
| MVP Access
| *******************************************************
|
| "Raymond [mvp]" a écrit dans le message de news:
|
| > je ne vais pas te faire attendre plus longtemps, vu que personne n'est
| > tordu
| > ici, tu vois bien !
| >
| > Dim T As Variant
| > Dim I As Integer
| > Dim C As Integer
| > C = 0
| > T = Split(Me.Texte1, " ")
| > For I = 0 To UBound(T) - 1
| > If InStr(1, Me.Texte2, T(1)) > 0 Then
| > C = C + 1
| > End If
| > Next I
| > If C > 1 Then
| > MsgBox ("youpiii")
| > Else
| > MsgBox "bof bof..."
| > End If
| >
| > je n'ai pas trouvé plus tordu.
| > --
| > @+
| > Raymond Access MVP http://OfficeSystemAccess.seneque.net/" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://OfficeSystemAccess.seneque.net/
| > http://officesystem.access.over-blog.com/" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://officesystem.access.over-blog.com/
| > Pour débuter sur le forum: http://www.mpfa.info/" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info/
| >
| >
| > "Pierre CFI [mvp]" a écrit dans le message
| > de
| > news:
| > | Bonjour
| > | un peu tordu, mais je sais qu'il y en a ici :o))
| > | dans un table, j'ai un champ ou l'on trouve 1 2 ou 3 mots
| > | ces mots peuvent se retrouver dans un champ d'une autre table
| > | si j'en retrouve 2 c'est bon, les enregistrements correspondent
| > | table1, champ1
| > | "grand arbre"
| > | table2 champ 1
| > | "arbre qui est grand"
| > | ici c'est bon, on a arbre et grand
| > | pas evident, car il y a 20 000 enr
| > | à votre bon coeur
| > |
| > | --
| > | Pierre SALAUN
| > | MVP Access
| > | *******************************************************
| > |
| > |
| >
| >
|
|
Avatar
Pierre CFI [mvp]
.../...
non, dans la source je ne cherche que 3 mots maxi, mais dans la cible ces 2
ou 3 mots se suivent mais avec d'autres mots entre

Beau sapin Noel
ces 3 mots se trouvent dans
Mon beau sapin de noel
mais pas dans
il est beau mon sapin
pas évident
je cherche ....

--
Pierre SALAUN
MVP Access
*******************************************************

"Raymond [mvp]" a écrit dans le message de news:
%
C'est une usine à gaz que tu développes ?
en diagonale, en fin de compte tu veux retenir quoi de ton test ? les
champs
identiques pour les placer dans une requête ? si tu as plus de 3 mots tu
fais quoi ?
tout ça me semble bien compliqué.

--
@+
Raymond Access MVP http://OfficeSystemAccess.seneque.net/" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://OfficeSystemAccess.seneque.net/
http://officesystem.access.over-blog.com/" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://officesystem.access.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info/


"Pierre CFI [mvp]" a écrit dans le message
de
news: %
| ah bon ! c'est tout ? c'est quoi ce bazard
| çà cherche quoi dans quoi ???
| Raymond, au coin
| je crois avoir trouvé quelque chose
| sauf que dans like je me mélange avec les espaces et *
| regarde
| Sub ChercheMot()
| Dim c As Integer, i As Integer
| Dim deb As Integer
| Dim str(2) As String
| Dim bd As DAO.Database
| Dim enr As DAO.Recordset
| Dim Nomtable As String
| Dim enrcible As DAO.Recordset
| Dim StrSource As String, Veriftable
| Dim T As Long, Cpt As Long, Tot As Long
| Dim crit As String
| Set bd = CurrentDb
| '// ici on peut faire avec inputbox comme autre fois
| '// pas oublier d'ajouter des Dim
|
| Nomtable = InputBox("Saisir le nom de la table source", "Traitement
| action 2")
| If Nomtable = "" Then
| MsgBox "Action annulée"
| Exit Sub
| End If
| 'On Error Resume Next
| Set Veriftable = bd.TableDefs(Nomtable)
| If Veriftable Is Nothing Then
| MsgBox "Nom de table incorrect"
| Exit Sub
| End If
| 'On Error GoTo bye
|
|
|
|
| Set enr = bd.OpenRecordset("select [company name] from [" & Nomtable
&
| "]")
| '// Pierre pour compter le nb d'enregistrements
| If Not enr.EOF Then
| enr.MoveLast
| enr.MoveFirst
| Tot = enr.RecordCount
| End If
| SysCmd acSysCmdInitMeter, "Traitement", Tot
| '//************
|
| Do Until enr.EOF
| c = 1
| i = 0
| deb = 0
| str(0) = ""
| str(1) = ""
| str(2) = ""
|
| StrSource = Nz(enr("company name"), "")
| If StrSource <> "" Then
| '// on bloque a 2 car le tableau str(2) 0 inclus
| Do Until (c = 0 Or i = 2)
| c = InStr(c + 1, StrSource, " ")
| If c <> 0 Then
| 'If deb > Len(StrSource) - 1 Then Exit Do
| str(i) = Replace(Mid(StrSource, deb + 1, c - deb -
1),
| "'", "")
| ElseIf c = 0 Then
| '// ici un seul mot
| str(0) = StrSource
| End If
| deb = deb + c
| i = i + 1
| Loop
| Debug.Print " mot 0 " & str(0) & " mot 1 " & str(1) & " mot 2
"
| & str(2)
| End If
| '*********************
| T = T + 1
| 'Debug.Print T
| DoEvents
| '// Pierre********* affiche la progression
| SysCmd acSysCmdSetStatus, "Avancement " & T & " / " & Tot & " dans "
&
| "" & " *** " & Cpt & " traités"
|
| If StrSource <> "" Then
| Debug.Print "'*" & str(0) & " *" & IIf(str(1) = "", "", str(1) & "
*")
&
| IIf(str(2) = "", "", str(2) & " *") & "'"
|
| Set enrcible = bd.OpenRecordset("select [inac name], [account
name]
| from Master where [account name] like '*" & str(0) & " *" & IIf(str(1) > "",
| "", " " & str(1) & " *") & IIf(str(2) = "", "", " " & str(2) & " *") &
"'")
|
| Do Until enrcible.EOF
| Cpt = Cpt + 1
| 'Debug.Print cpt
| Debug.Print enrcible("account name") & " ---- " &
StrSource
| 'If Nz(enrcible("inac name"), "") = "" Or enrcible("inac
| name") = "" Then
| 'cptm = cptm + 1
| 'enrcible.Edit
| 'enrcible("inac name") = Strsource
| 'enrcible.Update
| 'Else
| 'enr.Edit
| 'enr("company name") = enrcible("inac name")
| 'enr.Update
| 'End If
| enrcible.MoveNext
|
| Loop
| enrcible.Close
| End If
| '*****************************
|
|
|
|
|
| enr.MoveNext
| Loop
| byebye:
| '// activer si on veut effacer le message
| 'SysCmd acSysCmdRemoveMeter
| MsgBox Cpt
| 'MsgBox Cpt & " account name semblables " & cptm & " inac name
vides
| puis modifiés"
| Set enrcible = Nothing
| Set enrcible = Nothing
| enr.Close
|
| Set enr = Nothing
| Set bd = Nothing
|
| Exit Sub
| bye:
| MsgBox Error$ & vbCrLf & "Vous avez pensé à ajouter un champ
| 'traitement' numeric"
| Resume byebye
|
|
|
|
| End Sub
|
|
| --
| Pierre SALAUN
| MVP Access
| *******************************************************
|
| "Raymond [mvp]" a écrit dans le message de
news:
|
| > je ne vais pas te faire attendre plus longtemps, vu que personne n'est
| > tordu
| > ici, tu vois bien !
| >
| > Dim T As Variant
| > Dim I As Integer
| > Dim C As Integer
| > C = 0
| > T = Split(Me.Texte1, " ")
| > For I = 0 To UBound(T) - 1
| > If InStr(1, Me.Texte2, T(1)) > 0 Then
| > C = C + 1
| > End If
| > Next I
| > If C > 1 Then
| > MsgBox ("youpiii")
| > Else
| > MsgBox "bof bof..."
| > End If
| >
| > je n'ai pas trouvé plus tordu.
| > --
| > @+
| > Raymond Access MVP http://OfficeSystemAccess.seneque.net/" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://OfficeSystemAccess.seneque.net/
| > http://officesystem.access.over-blog.com/" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://officesystem.access.over-blog.com/
| > Pour débuter sur le forum: http://www.mpfa.info/" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.mpfa.info/
| >
| >
| > "Pierre CFI [mvp]" a écrit dans le
message
| > de
| > news:
| > | Bonjour
| > | un peu tordu, mais je sais qu'il y en a ici :o))
| > | dans un table, j'ai un champ ou l'on trouve 1 2 ou 3 mots
| > | ces mots peuvent se retrouver dans un champ d'une autre table
| > | si j'en retrouve 2 c'est bon, les enregistrements correspondent
| > | table1, champ1
| > | "grand arbre"
| > | table2 champ 1
| > | "arbre qui est grand"
| > | ici c'est bon, on a arbre et grand
| > | pas evident, car il y a 20 000 enr
| > | à votre bon coeur
| > |
| > | --
| > | Pierre SALAUN
| > | MVP Access
| > | *******************************************************
| > |
| > |
| >
| >
|
|




Avatar
Raymond [mvp]
salut.

essaie ceci:

Private Sub Commande1_Click()
Dim T As Variant
Dim I As Integer
Dim J As Integer
Dim Mots() As String
T = Split(Me.Texte1, " ")
ReDim Mots(UBound(T)) As String
For I = 0 To UBound(T)
If InStr(1, Me.Texte2, T(I)) > 0 Then
Mots(J) = T(I)
J = J + 1
End If
Next I
If J > 1 Then
MsgBox "j'ai trouvé " & Mots(0) & " et " & Mots(1)
Else
MsgBox "bof bof..."
End If
End Sub

deux controles texte, texte1 texte2 et un bouton de commande Commande1
tu entres mon beau sapin dans texte1
tu entres le sapin de noel est beau
clique sur commande1 et tu devrais avoir le msgbox avec:
j'ai trouvé beau et sapin

--
@+
Raymond Access MVP http://OfficeSystemAccess.seneque.net/
http://officesystem.access.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/


"Pierre CFI [mvp]" a écrit dans le message de
news:
| .../...
| non, dans la source je ne cherche que 3 mots maxi, mais dans la cible ces
2
| ou 3 mots se suivent mais avec d'autres mots entre
|
| Beau sapin Noel
| ces 3 mots se trouvent dans
| Mon beau sapin de noel
| mais pas dans
| il est beau mon sapin
| pas évident
| je cherche ....
|
| --
| Pierre SALAUN
| MVP Access
Avatar
Pierre CFI [mvp]
ah, cà c'est du raymond-la-science
merci, je vais adapter

--
Pierre SALAUN
MVP Access
*******************************************************

"Raymond [mvp]" a écrit dans le message de news:
%23C%
salut.

essaie ceci:

Private Sub Commande1_Click()
Dim T As Variant
Dim I As Integer
Dim J As Integer
Dim Mots() As String
T = Split(Me.Texte1, " ")
ReDim Mots(UBound(T)) As String
For I = 0 To UBound(T)
If InStr(1, Me.Texte2, T(I)) > 0 Then
Mots(J) = T(I)
J = J + 1
End If
Next I
If J > 1 Then
MsgBox "j'ai trouvé " & Mots(0) & " et " & Mots(1)
Else
MsgBox "bof bof..."
End If
End Sub

deux controles texte, texte1 texte2 et un bouton de commande Commande1
tu entres mon beau sapin dans texte1
tu entres le sapin de noel est beau
clique sur commande1 et tu devrais avoir le msgbox avec:
j'ai trouvé beau et sapin

--
@+
Raymond Access MVP http://OfficeSystemAccess.seneque.net/
http://officesystem.access.over-blog.com/
Pour débuter sur le forum: http://www.mpfa.info/


"Pierre CFI [mvp]" a écrit dans le message
de
news:
| .../...
| non, dans la source je ne cherche que 3 mots maxi, mais dans la cible
ces
2
| ou 3 mots se suivent mais avec d'autres mots entre
|
| Beau sapin Noel
| ces 3 mots se trouvent dans
| Mon beau sapin de noel
| mais pas dans
| il est beau mon sapin
| pas évident
| je cherche ....
|
| --
| Pierre SALAUN
| MVP Access