OVH Cloud OVH Cloud

récupérer le nombre d'1 cell. qui contient des lettres +1 nombre s

6 réponses
Avatar
gaelle
Je souhaite récupérer le nombre qui se trouve caché dans une cellule au
milieu de letres.

exemple:
cbzdhz12zdmjl; je souhaite récupérer le 12
cbzdhz 241zJmjl; je souahite récuperer le 241

Merci de votre attention, ce serait une grande aide pour moi.

Salutations. Gaëlle.

6 réponses

Avatar
JohnFuss
Bonjour,

je te donne une solution :

Function RecupMonNombre(Cellule As String) As Integer
Dim i As Integer, tbl() As String, Initied As Boolean

Initied = False
For i = 1 To Len(Cellule)
If IsNumeric(Mid(Cellule, i, 1)) Then
If Initied Then
ReDim Preserve tbl(UBound(tbl) + 1)
Else
ReDim tbl(0)
Initied = True
End If
tbl(UBound(tbl)) = Mid(Cellule, i, 1)
End If
Next

For i = LBound(tbl) To UBound(tbl)
RecupMonNombre = CInt(CStr(RecupMonNombre) & tbl(i))
Next

End Function


Bon courage

John


"gaelle" a écrit dans le message de news:

Je souhaite récupérer le nombre qui se trouve caché dans une cellule au
milieu de letres.

exemple:
cbzdhz12zdmjl; je souhaite récupérer le 12
cbzdhz 241zJmjl; je souahite récuperer le 241

Merci de votre attention, ce serait une grande aide pour moi.

Salutations. Gaëlle.



Avatar
stéphane
Bonjour,

voilà une manière de faire

Function RecupNombre(Texte As String) As Integer
Dim bcle As Integer, Nombre As String, Car As String, Car_suiv As String

Nombre = Empty
For bcle = 1 To Len(Texte)
Car = Mid(Texte, bcle, 1)
Car_suiv = Mid(Texte, bcle + 1, 1)
If IsNumeric(Car) Then Nombre = Nombre & Car
If Not IsNumeric(Car_suiv) And Nombre <> Empty Then Exit For
Next
RecupNombre = CInt(Nombre)
End Function


stéphane

"gaelle" a écrit dans le message de news:

Je souhaite récupérer le nombre qui se trouve caché dans une cellule au
milieu de letres.

exemple:
cbzdhz12zdmjl; je souhaite récupérer le 12
cbzdhz 241zJmjl; je souahite récuperer le 241

Merci de votre attention, ce serait une grande aide pour moi.

Salutations. Gaëlle.



Avatar
Clément Marcotte
Pour la copie, c'est pas mal.

"stéphane" a écrit dans le message de news:
e63unv$2m7$
Bonjour,

voilà une manière de faire

Function RecupNombre(Texte As String) As Integer
Dim bcle As Integer, Nombre As String, Car As String, Car_suiv As String

Nombre = Empty
For bcle = 1 To Len(Texte)
Car = Mid(Texte, bcle, 1)
Car_suiv = Mid(Texte, bcle + 1, 1)
If IsNumeric(Car) Then Nombre = Nombre & Car
If Not IsNumeric(Car_suiv) And Nombre <> Empty Then Exit For
Next
RecupNombre = CInt(Nombre)
End Function


stéphane

"gaelle" a écrit dans le message de
news:
Je souhaite récupérer le nombre qui se trouve caché dans une cellule au
milieu de letres.

exemple:
cbzdhz12zdmjl; je souhaite récupérer le 12
cbzdhz 241zJmjl; je souahite récuperer le 241

Merci de votre attention, ce serait une grande aide pour moi.

Salutations. Gaëlle.







Avatar
Clément Marcotte
Finalement, je vois que ce n'est pas vraiment copié. Mille excuses.

"stéphane" a écrit dans le message de news:
e63unv$2m7$
Bonjour,

voilà une manière de faire

Function RecupNombre(Texte As String) As Integer
Dim bcle As Integer, Nombre As String, Car As String, Car_suiv As String

Nombre = Empty
For bcle = 1 To Len(Texte)
Car = Mid(Texte, bcle, 1)
Car_suiv = Mid(Texte, bcle + 1, 1)
If IsNumeric(Car) Then Nombre = Nombre & Car
If Not IsNumeric(Car_suiv) And Nombre <> Empty Then Exit For
Next
RecupNombre = CInt(Nombre)
End Function


stéphane

"gaelle" a écrit dans le message de
news:
Je souhaite récupérer le nombre qui se trouve caché dans une cellule au
milieu de letres.

exemple:
cbzdhz12zdmjl; je souhaite récupérer le 12
cbzdhz 241zJmjl; je souahite récuperer le 241

Merci de votre attention, ce serait une grande aide pour moi.

Salutations. Gaëlle.







Avatar
AV
| Je souhaite récupérer le nombre qui se trouve caché dans une cellule au
| milieu de letres.

Avec possibilité de valeurs décimales (séparateur décimal identique à
celui système)
Matricielle :
=1*STXT(A1;MIN(SI(ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1)))>0;ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1)))));MAX(ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1))))-MIN(SI(ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1)))>0;ESTNUM(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1))*LIGNE(INDIRECT("1:"&NBCAR(A1)))))+1)

AV
Avatar
Clément Marcotte
Bonjour,

Un petit coup d'expressions régulières. Tu peux appeler la directement d'une
autre cellule comme une fonction d'Excel "ordinaire", ou d'une macro.

Function JusteLesChiffres(chaine As String) As Variant
Dim re As Object, match As Object, matches As Object
'Déclarer une variable object re pour utiliser
'les expressions régulières
Set re = CreateObject("vbscript.regexp")
'Avec global à false, on arrête avec la première
'correspondance. Avec true, on cherche toute les correspondances
'dans la cellule
re.Global = False
'On cherche une suite de caractères numériques
re.Pattern = "d+"
Set matches = re.Execute(chaine)
For Each match In matches
JusteLesChiffres = match
Next
End Function

"gaelle" a écrit dans le message de news:

Je souhaite récupérer le nombre qui se trouve caché dans une cellule au
milieu de letres.

exemple:
cbzdhz12zdmjl; je souhaite récupérer le 12
cbzdhz 241zJmjl; je souahite récuperer le 241

Merci de votre attention, ce serait une grande aide pour moi.

Salutations. Gaëlle.