[VBA] nieme occurence

Résolu
Steefif Messages postés 526 Statut Membre -  
Steefif Messages postés 526 Statut Membre -
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. Ivan-hoe Messages postés 433 Date d'inscription   Statut Membre Dernière intervention   310
     
    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. Steefif Messages postés 526 Statut Membre 19
       
      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