cs_sam1975
Messages postés10Date d'inscriptiondimanche 7 juin 2009StatutMembreDernière intervention 9 mars 2012
-
4 mars 2010 à 19:28
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018
-
4 mars 2010 à 21:33
Bonjour à tous, j'ai un petit souci avec des chaines alphanumériques qui ont des longueurs variables et j'aurais voulu récupérer le dernier nombre qui la compose, sachant qu'il peut y avoir des virgules des espaces.
Merci d'avance si quelqu'un a une foction, je suis preneur.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018209 4 mars 2010 à 21:33
Moi, je t'ai montré comment extraire. C'était là ta question et elle a trouvé sa réponse.
Le reste est non seulement autre chose et ton affaire, mais également trop simple !
Aloirs ? ===>> réponse acceptée (clic à faire) en ce qui concerne la question posée (traitement d'une chaîne de caractères)à. C'est ici un principe.
____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 4 mars 2010 à 19:34
Salut
Un petit exemple de chaine aurait été le bienvenu car les méthodes de recherche dans une chaine en dépendent largement.
La plus simple consiste à parcourir la chaine depuis la fin vers le début (une boucle For-Next fera l'affaire) + un ensemble de If-Then-Else permettant de détecter les chiffres et/ou virgule/point, etc
Qu'as-tu écrit jusqu'à présent ?
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_sam1975
Messages postés10Date d'inscriptiondimanche 7 juin 2009StatutMembreDernière intervention 9 mars 2012 4 mars 2010 à 20:15
j'ai rcupéré cette fonction mais elle me trouve le premier nombre de ma chaine or j'aurai souhaité qu'elle me trouve le dernier.
For i = 1 To Len(chaine)
sTemp = Mid$(chaine, i, 1)
If IsNumeric(sTemp) Then
firstIndex = i
lastIndex = i - 1
While IsNumeric(Mid$(chaine, i, 1)) And i <= Len(chaine)
lastIndex = lastIndex + 1
i = i + 1
Wend
Exit For
End If
Next i
exemple de chaine:
2 ( 1 à 20 ) + 3 assoc. + acceuil + CCAS
je voudrai donc que la fonction me renvoie 3
sachant que la longueur et le contenu de la chaine sont toujours différents.Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018209 4 mars 2010 à 20:50
Bonjour,
quelque-chose du genre :
toto = "2 ( 1 à 20 ) + 327 assoc. + acceuil + CCAS"
For i = Len(toto) To 1 Step -1
If IsNumeric(Mid(toto, i, 1)) Then Exit For
Next
For j = i - 1 To 1 Step -1
If Not IsNumeric(Mid(toto, j, 1)) Then Exit For
Next
MsgBox Mid(toto, j, i + 1 - j)
A adapter au besoin si ton dernier nombre peut-être décimal (tu ne nous en as pas parlé).
____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018209 4 mars 2010 à 20:59
Les solutions seront dans ce domaines aussi nombreuses que le nombre d'esprits inventifs, bien sûr !
En voilà une 2ème :
toto = "2 ( 1 à 20 ) + 327 assoc. + acceuil + CCAS"
titi = toto
Do While titi Like "* #*"
titi = Mid(titi, 2)
Loop
MsgBox Val(titi)
Si tu veux me faire plaisir, trouve au moins une autre méthode (ce sera formateur).
____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
cs_sam1975
Messages postés10Date d'inscriptiondimanche 7 juin 2009StatutMembreDernière intervention 9 mars 2012 4 mars 2010 à 21:30
Ta function fonctione nickel mais je voudrais que lavaleur renvoyée dans la MSGBOX, je puisse la faire apparaître dans la cellule active.Merci en tout cas