Récuperer une partie d'un mot

Signaler
Messages postés
14
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
20 août 2009
-
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
-
Bonjour,


Je souhaiterai savoir comment récuperer une partie d'un mot et le mettre par ex dans une listbox, par ex :


mottrucmot : si truc est présent, mettre mottrucmot dans la list box


A savoir qu'il y a une serie de mot dans une liste


cad :


ggrtruczez


frgdsgsdh


dfdgtrucere

J'espère quej 'ai été clair et merci d'avance

14 réponses

Messages postés
32
Date d'inscription
mercredi 24 mars 2004
Statut
Membre
Dernière intervention
3 août 2006

Salut,
Si c'est en VBA, tu peux essayer Like.
Ex: If "ggrtruczez" Like "*truc*" Then...
Michael
Messages postés
14819
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 septembre 2021
156
Bonjour

Ou tu peux voir avec InStr(..)

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
Messages postés
314
Date d'inscription
mercredi 15 juin 2005
Statut
Membre
Dernière intervention
31 août 2006
1
Je te conseillerais pour ma part plutot l'utilisation des fonctions

Dim var, MyString As String, SearchW As String


MyString = "mottrucmot"
SearchW = "truc"
var = Mid(MyString, InStr(Len(SearchW), MyString, SearchW, 1), Len(SearchW))
Messages postés
414
Date d'inscription
mercredi 16 juin 2004
Statut
Membre
Dernière intervention
26 juillet 2007
3
sinon il y as rien de mieux que les regex (expression reguliere) pour ca. et de loin, c'est un outil totalement fais pour !
si ca t'interresse, j'essairai de trouver un lien pour ca (et si tu connait pas bien sur, mais tu connait pas sinon tu l'aurait utilisé ^^)
par contre attention: c'est vraiment pas simple a debuter dedans !

<hr size="2" width="100%">
L U C Y I3 E R @ D
Messages postés
14819
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 septembre 2021
156
Bonjour

Si c'est du .NET (parce que la on ne sait pas) il est possible de rechercher avec IndexOf(...)

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
Salut,



Voici un exemple de code pour faire çà (en VB6) :

Private Sub AjouterLeMot(sMot As String, sMotPresent As String,lst As ListBox)



If Instr(1,sMot,sMotPresent) > 0 Then

lst.Additem sMot

End If



End Sub






Et ensuite, tu l'appelles comme ceci :



AjouterLeMot "dhsgftrucdsf" , "truc" , List1




Manu
Messages postés
14
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
20 août 2009

Hum ça marche pas, peut etre parce j'ai pas évoqué les deux listbox :

En fait le mot à chercher est dans une listbox et la liste où il y a tous les mots sont aussi dans une listbox :

truc fdsdftruc
bla dsfsdfsdf
tgdgsgtruc
sqdsbla

Quelque chose dans ce genre la, donc ça fait qu'il faut prendre la première ligne de la 1ere listbox aussi.
Si on trouve le mot dans un mot dans la 2e listbox, par ex fdsdftruc se trouvera dans une troisieme liste, et ainsi de suite.
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
Et bien, tu utilises ma procédure comme ceci :



AjouterLeMot List1.List(j), List2.List(k), List3



En faisant varier j et k pour obtenir chaque élément de tes deux premières ListBoxes.

Manu
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
Si, dans ton schéma ci-dessus, List1 est à gauche et List2 à droite :







Dim j As Long

Dim k As Long



List3.Clear

For k = 0 To List2.ListCount - 1

For j = 0 To List1.ListCount - 1

AjouterLeMot List2.List(k) , List1.List(j) , List3

Next j

Next k

Manu
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,

Il semblerait que tu es pas mal de difficulté pour être clair dans ton explication... les fssqddsftruc et autres, c est pas très explicite... (je dis ça mais ça se trouve je ne vais pas être mieux)

En utilisant la fonction de 100635 econs et en l'applicant à ce que j'ai cru comprendre de ton problème .
ATTENTION Tu peux certainement faire mieux, mais c est juste un exemple
Soit List1 ta listbox contenant les mots à tester et List2 la liste qui contient LE (ou les d'ailleurs il faudrait preciser) et list3 le resultat.
Private Sub List2_Click()
Dim i as integer

For i = 0 to List1.ListCount
Call AjouterLeMot(List1.List(i), List2.List(List2.ListIndex), List3)
next

End Sub

Voila en espérant avoir pu te dépanner
@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Re,

Pas assez rapide petit scarabée
tant pis j'espère au moins que j'ai pas trop taper à coté de la plaque.

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
Messages postés
14
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
20 août 2009

Dsl si je n'ai pas été très "explicite" alors, j ai du mieux maintenant j ai un 0 qui s affiche ds la troisieme liste

Jai mis ce code dans un bouton aussi, alors peut etre que je peux pas j en sais rien.

Voila ce quej ai com code :
Private Sub Command7_Click()
Dim i As Long
Dim j As Long


For i = 0 To List1.ListCount - 1 '1ere liste ou il y a le mot a rechercher
List1.ListIndex = i
For j = 0 To List2.ListCount - 1 '2e liste ou il y a la liste des mots
List2.ListIndex = j

If InStr(1, j, i) > 0 Then
List3.AddItem j
End If
End Sub
Messages postés
14
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
20 août 2009

Next j
Next i

j lavais mis ds le code
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
If InStr(1, j, i) > 0 Then

List3.AddItem j

End If



Quand on traduit ceci, çà signifie :



Si, dans le nombre j, je trouve le nombre i, alors j'ajoute le nombre j à List3.

Ce n'est pas ce que tu souhaites faire.



ma procédure (déposée à 13h48) fait l'opération correctement.



Utilises :

List1.List(i)

List2.list(j)

pour récupérer les mots qui se trouvent aux indices i et j de List1 et List2.






Manu