[VBA] nieme occurence
Résolu
Steefif
Messages postés
526
Statut
Membre
-
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.
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.
A voir également:
- [VBA] nieme occurence
- Excel compter cellule couleur sans vba - Guide
- Dépassement de capacité vba ✓ - Forum Excel
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Vba range avec variable ✓ - Forum VB / VBA
1 réponse
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
La boucle serait la suivante :
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.
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.
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