Recherche mot suivant dans un texte...

Contenu du snippet

Code de la recherche suivante du note pad, en 6 lignes de code.

Ca casse pas des briques, mais bon, comme j'en ai vu qui se prennait la tête avec ça et que j'ai du en faire une pour moi, ca peut peut être rendre service... :)

On considere un bouton Suivant, une case textbox TxtRech pour le mot recherché et un texte contenu dans une autre txtbox, texte

Source / Exemple :


Public Position As Integer 'Memorisation de la position entre 2 recherches

Private Sub Suivant_Click()
    'Recherche textuelle à partir de la position actuelle 
            Position = InStr(position + 1, Texte.Text, TxtRech.Text)
            Texte.Text.SelStart = position - 1
            Texte.Text.SelLength = Len(TxtRech.Text)
            Texte.Text.SetFocus
End Sub

Private Sub TxtRech_Change()
    'Une nouvelle recherche est commencée, on remet la position à zero
    position = 0
End Sub

Conclusion :


Des explications ?

Dés que vous tapez un texte, la position de recherche dans le texte se remet à zero pour une nouvelle recherche.

Ensuite, on effectue classiquement la recherche à position + 1 :

. Si c'est la première recherche, on part donc de 1, logique
. Si on à déjà trouvé une occurence, on décale d'un cran pour chercher l'occurence suivante et pas retomber sur la même. (Pour trouvé to position 91 ("...total..."), prochaine recherche commence à position 92, soit à(" ...otal...")

selstart, c'est le début de la selection, on lui retranche -1 parce que la selection commence aprés cette position et qu'on veut prendre le caractere du debut. (Si position = 91, selstart à 91 commencera à selectionner apres le caractere 91, soit ici à partir de "otal", donc en decalant de 1 on pourra prendre "total"

.Sellength c'est la longeur du txte seletionner, pas compliqué

.setfocus execute la selection

Voili voilou...

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.