Chaine alphanumérique [Résolu]

Messages postés
10
Date d'inscription
dimanche 7 juin 2009
Statut
Membre
Dernière intervention
9 mars 2012
- - Dernière réponse : ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 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.
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
214
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 205 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
3
0
Merci
Bonjour,

Regardes du côté des fonctions Left/right, sinon pour savoir la longueur si cela peut t'être utile , fonction Len.

L'expérience, c'est une connerie par jour, mais jamais la même..
Commenter la réponse de lolokun
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
61
0
Merci
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)
Commenter la réponse de cs_Jack
Messages postés
10
Date d'inscription
dimanche 7 juin 2009
Statut
Membre
Dernière intervention
9 mars 2012
0
Merci
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
Commenter la réponse de cs_sam1975
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
214
0
Merci
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
Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
214
0
Merci
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
Commenter la réponse de ucfoutu
Messages postés
10
Date d'inscription
dimanche 7 juin 2009
Statut
Membre
Dernière intervention
9 mars 2012
0
Merci
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
Commenter la réponse de cs_sam1975