[VBA] nieme occurence

Résolu
Steefif Messages postés 485 Date d'inscription   Statut Membre Dernière intervention   -  
Steefif Messages postés 485 Date d'inscription   Statut Membre Dernière intervention   -
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.

1 réponse

Ivan-hoe Messages postés 433 Date d'inscription   Statut Membre Dernière intervention   309
 
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
Steefif Messages postés 485 Date d'inscription   Statut Membre Dernière intervention   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