OVH Cloud OVH Cloud

Nombre dans une chaine de texte

4 réponses
Avatar
Etienne
Bonjour =E0 tous,

Je d=E9sire d=E9terminer dans une chaine de texte la position=20
du premier caract=E8re num=E9rique et cell du premier=20
caract=E8re alphanum=E9rique. Quelle fonction dois-je utiliser=20
et y-a-t-il un code sp=E9cifique en vba ?

Merci d'avance !

4 réponses

Avatar
...Patrick
Ceci devrait fonctionner
' inspiré d'un code de Michel Gaboly
'
Function OuestleChiffre(cel As Object)
Dim Chaine As String, c As String, NbCar As Integer, i As
Integer
Dim Nb As Double, NbEnCours As Boolean, CarTeste As String
On Error Resume Next
Chaine = cel.Cells(1, 1)
NbCar = Len(Chaine)
For i = 1 To NbCar
CarTeste = Mid(Chaine, i, 1)
If (Asc(CarTeste) >= 48 And Asc(CarTeste) <= 57) Then
OuestleChiffre = i
Exit For
End If
Next i
End Function

-----Message d'origine-----
Bonjour à tous,

Je désire déterminer dans une chaine de texte la position
du premier caractère numérique et cell du premier
caractère alphanumérique. Quelle fonction dois-je
utiliser

et y-a-t-il un code spécifique en vba ?

Merci d'avance !
.



Avatar
Etienne
J'ai adapté le code et ça marche parfaitement ! Merci
beaucoup ;)

Etienne

-----Message d'origine-----
Ceci devrait fonctionner
' inspiré d'un code de Michel Gaboly
'
Function OuestleChiffre(cel As Object)
Dim Chaine As String, c As String, NbCar As Integer, i
As

Integer
Dim Nb As Double, NbEnCours As Boolean, CarTeste As
String

On Error Resume Next
Chaine = cel.Cells(1, 1)
NbCar = Len(Chaine)
For i = 1 To NbCar
CarTeste = Mid(Chaine, i, 1)
If (Asc(CarTeste) >= 48 And Asc(CarTeste) <= 57) Then
OuestleChiffre = i
Exit For
End If
Next i
End Function

-----Message d'origine-----
Bonjour à tous,

Je désire déterminer dans une chaine de texte la
position


du premier caractère numérique et cell du premier
caractère alphanumérique. Quelle fonction dois-je
utiliser

et y-a-t-il un code spécifique en vba ?

Merci d'avance !
.

.





Avatar
AV
Je désire déterminer dans une chaine de texte la position
du premier caractère numérique


Matricielle :
=PETITE.VALEUR(SI(ESTNUM(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)*1);LIGNE(IND
IRECT("1:"&NBCAR(A1))));1)

AV

"Etienne" a écrit dans le message news:
096b01c35683$4716d8d0$
Bonjour à tous,

Je désire déterminer dans une chaine de texte la position
du premier caractère numérique et cell du premier
caractère alphanumérique. Quelle fonction dois-je utiliser
et y-a-t-il un code spécifique en vba ?

Merci d'avance !

Avatar
Daniel.M
Bonjour Étienne

Une autre solution, la formule matricielle suivante:

=EQUIV(1;0+(ABS(CODE(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))-52)<5);0)

en VBA:
Function PremChiffre(C As Range) As Integer
PremChiffre = Evaluate("MATCH(1,0+(ABS(CODE(MID(A1,ROW(1:" _
& Len(C) & "),1))-52)<5),0)")
End Function

Salutations,

Daniel M.

"Etienne" wrote in message
news:096b01c35683$4716d8d0$
Bonjour à tous,

Je désire déterminer dans une chaine de texte la position
du premier caractère numérique et cell du premier
caractère alphanumérique. Quelle fonction dois-je utiliser
et y-a-t-il un code spécifique en vba ?

Merci d'avance !