Posez votre question Signaler

[VBA] nieme occurence [Résolu]

Steefif 559Messages postés 7 juillet 2008Date d'inscription 7 février 2012Dernière intervention - Dernière réponse le 22 juil. 2008 à 11:44
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.
Lire la suite 

[VBA] nieme occurence »

2 réponses
Réponse
+2
moins plus
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.
Steefif - 22 juil. 2008 à 11:44
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
Ajouter un commentaire
Ce document intitulé « [VBA] nieme occurence » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook