Tu peux essayer les expressions régulières c'est très puissant.
En VBA, pour pouvoir en faire il faut rajouter en utilisant une nouvelle bibliothèque.
Pour ce faire utilise le menu :
Outils->Références et dans la liste, cocher "Microsoft VBScript Regular Expressions 5.5"
Ensuite il faut l'utiliser d'une manière equivalente à
Code :
- Sub Test()
- Dim rgxp As New regexp
- Dim matches As MatchCollection
- Dim match_elt As Match
- Dim nb_1 As Integer
- Dim nb_2 As Integer
- rgxp.Pattern = l'expression régulière qui va bien
- rgxp.Global = True
- Set matches = rgxp.Execute(str)
- ' Boucle sur les truc(nb_1,nb_2) trouvés
- For Each match_elt In matches
- ' SubMatches(0) contient la permière parenthèse de capture, SubMatches(1) la deuxième, ....
- nb_1 = match_elt.SubMatches(0) + le nombre x
- nb_2 = match_elt.SubMatches(1) + le nombre y
- ' la méthode value permet d'obtenir la chaine complète
- str = Replace(str, match_elt.Value, la nouvelle chaine genre truc(nb_1 +x, nb_2 +y), , 1)
- Next
- End Sub
|
Voilà pour l'utilisation d'une expression régulière.
Histoire de ne pas faire tout le boulot (sinon c'est pas drôle), Il reste des truc à remplir : str doit être remplacé par ta textbox, récupérer X et Y, mettre l'expression régulière
Pour ce qui est l'écriture d'un expression régulière google est ton ami.
Néanmoins qq indices :
- les parenthèses servent à capturer l'information (la récupérer), donc il doit y avoir des parenthèse autour des nombres
- un nombre s'ecrit \d+ (sans signe) ou -?\d+ (pour un signe - optionnel)
- attention les parenthèses doivent être protégés par \ quand on veut signifier le caractère "(" ou " )" au lieu de la "capture"
Bon courage,
Tiens nous au courant
Message édité par dreameddeath le 18-01-2008 à 01:43:45