Recherche d'une variable dans un long TextBox
Bonjour à tous,
Est-il possible en VBA de rechercher et mettre en surbrillance une variable (mot, nombre...) au sein d'un long TextBox dans un UserForm ? et si oui comment formuler le code ?
Je n'ai rien trouvé sur le Net. Merci à celle ou celui qui voudra bien répondre.
Bono1664
Recherche d'une variable dans un long TextBox
Bonjour Unparia et merci beaucoup pour cette réponse ultra-rapide.
Je suis débutant en VBA (d'où les erreurs de dénomination), je vais tenter de la mettre en application dans mon projet et je te tiens au courant.
Bonne journée
Bono1664
Recherche d'une variable dans un long TextBox
Bonsoir Unparia,
ça marche parfaitement : la formule met bien en surbrillance la chaine de caractères ! :D
Je n'aurais jamais trouvé tout seul.
Merci infiniment.
Cependant, et après avoir fait de nombreuses tentatives, je n'ai pas trouvé le moyen de faire "Find Next". Est-ce possible ?
Bono1664
Find Next chaîne de caractères dans un long TextBox
Bonjour,
Merci encore à Unparia et à Patricktoulon, mais je n'ai pas trouvé, malgré toutes mes tentatives, le moyen de faire un "Find Next". Est-ce possible ?
Cordialement
Bono1664
1 pièce(s) jointe(s)
re methode hussarde toulonnaise ;)
bonjour unparia
ca fonctionne bien
mais il y a des petites choses inutile dans ton code
notement le rang a 1 si 0 --> inutile
y compris le teste du premier "toto" en left(4)-->> de ce fait inutile
pour le scroll en cas de tres long texte tu n'a absolument rien a faire en selectionnant tu agit sur le scroll
j'ai a jouté le retour a zero de la scroll automatique simplement avec un selstart 0 et start 0 (pour toi c'est rang moi c'est start)
seul petit bemole a l'ouverture du userform la scroll est au max (je n'ai pas reussi a la mettre au min )
pourtant la scroll auto fonctionne fait plusieurs fois le tours en cliquant tu verra
ainsi la methode hussarde donne cela
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| Private start As Long
Private Sub CommandButton1_Click()
Dim cherche As String
cherche = "toto"
suivant cherche, start
End Sub
'
'
Private Sub suivant(cherche As String, start)
Dim i As Integer
With TextBox1
If start = 0 Then .SelStart = 0: .SelLength = 0 'ne fonctionne pas au premier click apres ouverture de l'userform
For i = start To Len(.Text)
.SelStart = i
.SelLength = Len(cherche)
.SetFocus
If .SelText = cherche Then start = .SelStart + Len(cherche): Exit Sub
If i > Len(.Text) - 4 Then .SelStart = 0: start = 0'ici ca fonctionne, ca revient bien en haut du texte du textbox
Next
End With
End Sub |
Pièce jointe 360578
Find Next chaîne de caractères dans un long TextBox
Bonjour et merci à unparia et patricktoulon, :D
pour moi les deux propositions "fonctionnent" sans problème et c'est le principal, mais je suis bien incapable d'en évaluer les subtilités (peut-être dans quelques années ? :()
Encore mille merci :merci: :merci:
Cordialement
Bono1664