Textbox

Résolu
MEEDID Messages postés 10 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 12 mars 2012 - 6 avril 2008 à 13:55
MEEDID Messages postés 10 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 12 mars 2012 - 6 avril 2008 à 15:16
Bonjour,

Je cherche à sélectionner une phrase dans un textbox.
J'effectue d'abord une recherche de mot dans le texte puis j'aimerais sélectionner la phrase pour la sauvegarder dans un fichier texte.
J'arrive bien à effectuer la recherche (search) et à sauvegarder dans le fichier texte (print) mais pas à sélectionner un morceau de phrase.
Je suppose que je dois utiliser text.selstart et text.sellength mais cela ne fonctionne pas.

Ex:  la phrase est "xxxxx bonjour je m'appelle didier"
Je fais une recherche sur le mot didier (c'est OK)
j'aimerais ne sauveagarder que la phrase "bonjour je m'appelle didier" sans prendre les xxxxx

Si quelqu'un a une idée, cela m'arrangerais bien car je suis bloqué

Merci d'avance

7 réponses

jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
6 avril 2008 à 14:29
Ben...

Sélectionne avec le bouton gauche et utilise SelText !
3
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
6 avril 2008 à 14:29
Ben...

Sélectionne avec le bouton gauche et utilise SelText !
3
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
6 avril 2008 à 14:31
Et (tu es bvien sous VB6, hein ... et pas sous VBA !!!)
Une textboix sous VB a un menu contextuel avec tout ce qu'il faut !
3
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
6 avril 2008 à 15:08
Ceci extrait les 5 caractères précédant la chaîne "dis"

Private Sub Command1_Click()
  toto = " blabladistotoaaaaaaaaaa"
  mot = "dis"
  pos = InStr(toto, mot)
  titi = Left(toto, pos - 1)
  titi = Right(titi, 5)
  MsgBox titi
End Sub
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
6 avril 2008 à 15:11
et (bien évidemment) ceci également :



Private Sub Command1_Click()
  toto = " blabladistotoaaaaaaaaaa"
  mot = "dis"
  pos = InStr(toto, mot)
  MsgBox Mid(toto, pos - 5, 5)
End Sub





 
3
MEEDID Messages postés 10 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 12 mars 2012
6 avril 2008 à 14:44
Je suis bien en VB6.0
La sélection de la phrase doit être automatique.
Dès que le mot est trouvé, la phrase doit être copiée dans le fichier automatiquement
Voici la partie du programme qui effectue la recherche du mot

      Search = "sanitaires"
     Where = InStr(Text1.Text, Search)
     If Where Then

         'Text1.SelStart = Where - 10
          Text1.SelLength = 30
         'Text1.Text = Text1.SelStart
      
     Open "C:\Documents and Settings\domotique\Bureau\FICHIERTEST.txt" For Append As #1
     Print #1, Text1.Text
     Close #1

Le but est de ne copier que les 38 caractères qui précèdent le mot recherché

Voilà sur quoi je me casse la tête depuis deux jours
0
MEEDID Messages postés 10 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 12 mars 2012
6 avril 2008 à 15:16
Merci.
Avec ta première réponse, j'ai trouvé aussi une solution (fonction seltext)

Search = "sanitaires"
     Where = InStr(Text1.Text, Search)
     If Where Then
     Text1.SelStart = Where - 38
     Text1.SelLength = Len(Text1.Text)
     Text1.Text = Text1.SelText
     Open "C:\Documents and Settings\domotique\Bureau\FICHIERTEST.txt" For Append As #1
     Print #1, Text1.Text   ' Écrit le texte dans le fichier.
     Close #1

Je viens d'effectuer quelques test et apparemment cela fonctionne

Je vais donc pouvoir continuer mon programme.

Encore merci pour tes bonnes idées
0