recherche dans textbox

ThomasR

XLDnaute Occasionnel
Bonjour le forum,


je sais rechercher des caractéres dans des textbox ('InStr')

mais je ne sais pas comment chercher la presence de plusieurs mots dans un textbox

exemple

dim u as integer
dim mot as string

textbox1.text = 'Thomas mange une pomme'
u = sheets(1).range('A600').end(xlup).row

for i = 1 to u
mot = sheets(1).range('A' & u).value

if mot est present dans textbox1.text then listbox1.additem mot

next i

PS : la variable mot sera valorisé par une phrase donc plusieurs mots.

d'avance merci
 

Hellboy

XLDnaute Accro
Bonjour Thomas®

Une suggestion: tu peut mettre ta liste ds un une variable tableau.

ex:


Public Sub InTextbox()
Dim u() As Variant
Dim vrtValue As Variant

textbox1.
Text = 'Thomas mange une pomme'
u() = Sheets(1).Range(Cells(1, 1), Cells(Cells(65536, 1).End(xlUp).Row, 1)).Value

For Each vrtValue In u()
If InStr(1, textbox1.Text, vrtValue) > 0 Then
listbox1.AddItem vrtValuemot
End If
Next vrtValue

End Sub

[/color=green]


Message édité par: Hellboy, à: 04/08/2005 14:22
 

ThomasR

XLDnaute Occasionnel
Bonjour Hellboy, le forum,

Merci pour ta reponse. (je ne sais pas ce que je ferais sans toi car tu reponse quasi tout le temps à mes question :) )

j'ai un message d'erreur qui me dit qu'il ne peut pas créer de tableau pour u()

Code:
Dim ligne As Integer
Dim u() As Variant
Dim vrtValue As Variant
ligne = Sheets('HISTO').Range('I600').End(xlUp).Row
For i = ligne To 13 Step -1
u() = Sheets('HISTO').Range('I' & ligne).Value
For Each vrtValue In u()
If InStr(1, Box.Adresse1.Text, vrtValue) > 0 Then
ListBox1.AddItem vrtValuemot
End If
Next vrtValue

Next i

j'ai du mal à adapter les cells(1,1)....

d'avance merci
 

ThomasR

XLDnaute Occasionnel
re,

excuse moi pour le temps de reponse.

si tu n'as pas de temps ce n'est pas grave cela peut attendre.

je pense comprendre ce qui ne va pas car si je modifi le u() en u je sais le valoriser mais des que je le bascule en tableau il y a une erreur.

pour moi cette erreur est du au fait que je n'index pas les valeur dans u

car dans u la valeur attendu est une phrase.

d'avance merci
 

Hellboy

XLDnaute Accro
re

2 sec

Si je suis ta première exemple

ça devrait donner quelque chose comme ceci

Dim ligne As Integer
ligne = Sheets('HISTO').Range('I600').End(xlUp).Row
For i = ligne To 13 Step -1
If InStr(1, Box.Adresse1.Text, Sheets('HISTO').Range('I' & u).Value) > 0 Then
ListBox1.AddItem Sheets('HISTO').Range('I' & u).Value
End If
Next i


oops

Message édité par: Hellboy, à: 04/08/2005 15:59
 

ThomasR

XLDnaute Occasionnel
re,

oui comme ca il n'y a plus d'erreur. mais en faisant de la sort il traite la valeur contenu dans mon range comme 1 seul valeur et non comme plusieurs mots.

je pense que ta premiere proposition est exactement ce que je recherche mais comment faire pour que chaque mot contenu dans la cellule soit valorisé undividuellement.

exemple (ou la condition est rempli car un des mots est present)
Dim u() As Variant
Dim vrtValue As Variant
range('A1').value = 'j'ai fait du sport avec thomas'
textbox1.Text = 'Thomas mange une pomme'
u() = range('A1').value

For Each vrtValue In u()
If InStr(1, textbox1.Text, vrtValue) > 0 Then
listbox1.AddItem range('A1').value
goto ligne1
End If
Next vrtValue
ligne 1:
End Sub

merci

Message édité par: Thomas®, à: 04/08/2005 16:33
 

Hellboy

XLDnaute Accro
re

J'avais oublié de faire le tour de chaquew mot de la phrase

donc comme tu le dis ds ton précédant post, basé sur ma première réponse avec 2 boucle comme ceci.

Désolé pas trop de détail. Toujours au taf !

Dim u() As Variant
Dim vrtValue As Variant

textbox1.Text = 'Thomas mange une pomme'
u() = Sheets(1).Range(Cells(1, 1), Cells(Cells(65536, 1).End(xlUp).Row, 1)).Value
' Si excel 97, la commande split n'existe pas, faut faire autrement

vrtSplitPhrase() = Split(textbox1.Text, Chr(32))

For Each Mot In vrtSplitPhrase()
For Each vrtValue In u()
If Mot = vrtValue Then
listbox1.AddItem vrtValue
End If
Next vrtValue
Next vrtValue
 

Discussions similaires

Statistiques des forums

Discussions
312 330
Messages
2 087 347
Membres
103 526
dernier inscrit
HEC