OVH Cloud OVH Cloud

Compter le nb de lettres avant chiffres

4 réponses
Avatar
JeanYves \(au pro\)
Bonjour à toutes et tous

Une petite colle pour la soirée ;-)

Je souhaite dans une chaine alphanumérique, je souhaite compter le nombre de
caractères qui se trouvent avant les chiffres

Par exemples dans MaChaine j'ai :

toto2000 le résultat à retourner est 4
toto 199 le résultat sera 5
totos00 Idem
tot5 le résultat est 3

Dans mes chaines j'ai toujours des lettres ou caractères puis des chiffres.

Si quelqu'un a une soluce

Par avance merci

JY

4 réponses

Avatar
Gilbert
Bonjour,

Avec quelque chose comme :
Function NombreLettres(Chaine As String) As Long
Dim i As Long
For i = 1 To Len(Chaine)
If IsNumeric(Mid(Chaine, i, 1)) Then
Exit For
End If
Next i
NombreLettres = i - 1
End Function


Gilbert


"JeanYves (au pro)" a écrit dans le message de
news:ed4b5g$7up$
Bonjour à toutes et tous

Une petite colle pour la soirée ;-)

Je souhaite dans une chaine alphanumérique, je souhaite compter le nombre
de

caractères qui se trouvent avant les chiffres

Par exemples dans MaChaine j'ai :

toto2000 le résultat à retourner est 4
toto 199 le résultat sera 5
totos00 Idem
tot5 le résultat est 3

Dans mes chaines j'ai toujours des lettres ou caractères puis des
chiffres.


Si quelqu'un a une soluce

Par avance merci

JY




Avatar
Eric
Bonjour,

Une fonction comme celle-ci irait ?

Function Jp(UneChaine) As Integer
If IsNull(UneChaine) Or Len(UneChaine) = 0 Then Exit Function
Dim nb As Byte, i As Byte ' nb peut etre déclaré en Integer
For i = 48 To 57
nb = InStr(UneChaine, Chr(i))
If nb > 0 Then Exit For
Next i
Jp = nb - 1
End Function


Bonjour à toutes et tous

Une petite colle pour la soirée ;-)

Je souhaite dans une chaine alphanumérique, je souhaite compter le nombre de
caractères qui se trouvent avant les chiffres

Par exemples dans MaChaine j'ai :

toto2000 le résultat à retourner est 4
toto 199 le résultat sera 5
totos00 Idem
tot5 le résultat est 3

Dans mes chaines j'ai toujours des lettres ou caractères puis des chiffres.

Si quelqu'un a une soluce

Par avance merci

JY




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Eric
Erreur si pas de chiffres dans la chaine, donc ...

Function Jp(UneChaine) As Integer
If IsNull(UneChaine) Or Len(UneChaine) = 0 Then Exit Function
Dim nb As Integer, i As Byte, bOK As Boolean
For i = 48 To 57
nb = InStr(UneChaine, Chr(i))
If nb > 0 Then bOK = True: Exit For
Next i
If bOK Then Jp = nb - 1
End Function



Bonjour,

Une fonction comme celle-ci irait ?

Function Jp(UneChaine) As Integer
If IsNull(UneChaine) Or Len(UneChaine) = 0 Then Exit Function
Dim nb As Byte, i As Byte ' nb peut etre déclaré en Integer
For i = 48 To 57
nb = InStr(UneChaine, Chr(i))
If nb > 0 Then Exit For
Next i
Jp = nb - 1
End Function




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
JeanYves \(au pro\)
Merci aux deux je vais essayer
JY

"JeanYves (au pro)" a écrit dans le message de
news: ed4b5g$7up$
Bonjour à toutes et tous

Une petite colle pour la soirée ;-)

Je souhaite dans une chaine alphanumérique, je souhaite compter le nombre
de caractères qui se trouvent avant les chiffres

Par exemples dans MaChaine j'ai :

toto2000 le résultat à retourner est 4
toto 199 le résultat sera 5
totos00 Idem
tot5 le résultat est 3

Dans mes chaines j'ai toujours des lettres ou caractères puis des
chiffres.

Si quelqu'un a une soluce

Par avance merci

JY