[VBA] nieme occurence

Résolu
Bonjour,
je voudrais savoir si il était possible en VBA de trouver la nieme occurence d'un cartere dans une chaine.
exemple
tata-titi-toto-tutu_oupa_ousi_ounon

trouver la position de la 3eme occurence du caractere - renvoie 15
trouver la position de la 2ème occurence du caractere _ renvoie 25

merci beaucoup de vos lumières.

--
La vie c'est comme une boite de chocolat, on ne sait jamais sur quoi on va tomber.
Configuration: Windows XP
Internet Explorer 6.0

1 réponse

  1. Bonjour,
    il semble qu'il n'y ait pas de fonction VBA qui le fasse directement, mais on peut la construire avec une boucle et la fonction InStr
    Dim Caractere As String 'le caractère recherché
    Dim Chaine As String 'la chaîne dans laquelle on cherche
    Dim N As Integer ' la Nième occurence
    Dim LaPosition As Integer ' la position du Nième Caractere dans Chaine

    La boucle serait la suivante :
    Do
        LaPosition = InStr(LaPosition + 1, Chaine, Caractere)
        If LaPosition = 0 Then Exit Do
        i = i + 1
    Loop Until i = N

    Elle renvoie 0 s'il n'y a pas de résultat.
    Selon l'usage que tu veux en faire, tu peux mettre ce code dans une procédure (Sub) ou dans une fonction (Function)
    I.
    5
    1. merci beaucoup!
      post super!
      juvé une solution alternative avec des left(right(...))
      mais c'ets quand meem mieux comme ca!
      plus propre tout de meme!

      bonne continuation
      0