Garder le premier et le dernier chiffres d'une phrase

  • Initiateur de la discussion Initiateur de la discussion Guido
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Guido

XLDnaute Accro
Bonjour Le Forum

J'aimerais garder seulement les chiffres dans deux cellule differente..

3 Apprenti Sorcier 208
15 Venosc de Minel 208
5 Vasco de Viette 152
12 Tina Vivancière 85
4 Undevenis Javanais 58

3 dans D1 et 208 dans E1
15 dans D2 et 208 dans E2

Merci d'avance

Guido
 
Re : Garder le premier et le dernier chiffres d'une phrase

Bonjour,

=GAUCHE(A1;CHERCHE(" ";A1)-1)
=DROITE(A1;EQUIV(" ";STXT(A1;NBCAR(A1)-LIGNE($1:$255);1);0))
Valider avec maj+ctrl+entrée

S'il n'y a pas d'espace

=GAUCHE(A1;EQUIV(VRAI;NON(ESTNUM(--(STXT(A1;LIGNE($1:$255);1))));0)-1)
Valider avec maj+ctrl+entrée
=DROITE(A1;EQUIV(VRAI;NON(ESTNUM(--(STXT(A1;NBCAR(A1)-LIGNE($1:$255);1))));0))
Valider avec maj+ctrl+entrée

JB
 

Pièces jointes

Dernière édition:
Re : Garder le premier et le dernier chiffres d'une phrase

Bonjour Guido, JB,

Une solution VBA qui fonctionne même s'il n'y a pas d'espaces :

Code:
Function Nombres(t$, Optional sens% = 0)
sens=0 ou omis 1er nombre, sens=1 dernier nombre
Dim i%, j%
Nombres = ""
t = Replace(t, " ", "#")
For i = IIf(sens, Len(t), 1) To IIf(sens, 1, Len(t)) Step IIf(sens, -1, 1)
  If IsNumeric(Mid(t, i, 1)) Then
    If sens = 0 Then Nombres = Val(Mid(t, i)): Exit For
    For j = i To 1 Step -1
      If Not IsNumeric(Mid(t, j, 1)) Then Exit For
    Next
    Nombres = Val(Mid(t, j + 1))
    Exit For
  End If
Next
End Function
Fichier joint.

Edit : remplacement des espaces par "#"

Bonne journée.
 

Pièces jointes

Dernière édition:
Re : Garder le premier et le dernier chiffres d'une phrase

Re,

Si l'on veut récupérer les nombres décimaux :

Code:
Function Nombres(t$, Optional sens% = 0)
sens=0 ou omis 1er nombre, sens=1 dernier nombre
Dim i%, j%
Nombres = ""
t = Replace(Replace(t, ",", "."), " ", "#")
For i = IIf(sens, Len(t), 1) To IIf(sens, 1, Len(t)) Step IIf(sens, -1, 1)
  If IsNumeric(Mid(t, i, 1)) Then
    If sens = 0 Then Nombres = Val(Mid(t, i)): Exit For
    For j = i To 1 Step -1
      If Not IsNumeric(Mid(t, j, 1)) And Mid(t, j, 1) <> "." Then Exit For
    Next
    Nombres = Val(Mid(t, j + 1))
    Exit For
  End If
Next
End Function
Fichier (2).

Edit : remplacement des espaces par "#"

A+
 

Pièces jointes

Dernière édition:
Re : Garder le premier et le dernier chiffres d'une phrase

Re,

Une méthode pour extraire tous les nombres d'une chaîne :

Code:
Function Nombres(t$, ordre%)
Dim i%, x$, s
Nombres = ""
t = Replace(t, ",", ".")
For i = 1 To Len(t)
  x = Mid(t, i, 1)
  If Not IsNumeric(x) And x <> "." Then x = " "
  s = s & x
Next
s = Split(Application.Trim(s))
If ordre < UBound(s) + 2 Then Nombres = Val(s(ordre - 1))
End Function
Application.Trim c'est SUPPRESPACE.

Fichier (3).

A+
 

Pièces jointes

Re : Garder le premier et le dernier chiffres d'une phrase

Re,

S'il y a des points ou des virgules dans le texte la macro précédente peut créer des zéros.

La variable testpoint les évite :

Code:
Function Nombres(t$, ordre%)
Dim i%, x$, testpoint As Boolean, s
Nombres = ""
t = Replace(t, ",", ".")
For i = 1 To Len(t)
  x = Mid(t, i, 1)
  If i > 1 Then testpoint = x = "." And IsNumeric(Mid(t, i - 1, 1))
  If Not (IsNumeric(x) Or testpoint) Then x = " "
  s = s & x
Next
s = Split(Application.Trim(s))
If ordre < UBound(s) + 2 Then Nombres = Val(s(ordre - 1))
End Function
Fichier (4).

A+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

C
Réponses
7
Affichages
3 K
N
Réponses
20
Affichages
3 K
Natoleza
N
M
Réponses
0
Affichages
2 K
MaxMad
M
Retour