recherche dans textbox

  • Initiateur de la discussion Initiateur de la discussion ThomasR
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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
 
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
 
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
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
35
Affichages
751
Réponses
3
Affichages
615
Réponses
12
Affichages
444
Réponses
5
Affichages
470
Retour