[VBA] nieme occurence
Résolu/Fermé
Steefif
Messages postés
485
Date d'inscription
lundi 7 juillet 2008
Statut
Membre
Dernière intervention
15 février 2013
-
22 juil. 2008 à 09:56
Steefif Messages postés 485 Date d'inscription lundi 7 juillet 2008 Statut Membre Dernière intervention 15 février 2013 - 22 juil. 2008 à 11:44
Steefif Messages postés 485 Date d'inscription lundi 7 juillet 2008 Statut Membre Dernière intervention 15 février 2013 - 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.
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
- Mkdir vba ✓ - Forum VB / VBA
- L'indice n'appartient pas à la sélection vba ✓ - Forum Programmation
- Autofill vba ✓ - Forum Excel
- Vba range avec variable ✓ - Forum VB / VBA
1 réponse
Ivan-hoe
Messages postés
433
Date d'inscription
dimanche 17 février 2008
Statut
Membre
Dernière intervention
17 octobre 2008
309
22 juil. 2008 à 11:22
22 juil. 2008 à 11:22
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.
22 juil. 2008 à 11:44
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