Chaine alphanumérique [Résolu]

Signaler
Messages postés
10
Date d'inscription
dimanche 7 juin 2009
Statut
Membre
Dernière intervention
9 mars 2012
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
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.

7 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
227
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
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
4
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..
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
68
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)
Messages postés
10
Date d'inscription
dimanche 7 juin 2009
Statut
Membre
Dernière intervention
9 mars 2012

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
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
227
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
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
227
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
Messages postés
10
Date d'inscription
dimanche 7 juin 2009
Statut
Membre
Dernière intervention
9 mars 2012

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