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...
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.