Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Extraire 2 nombres d'un texte

  • Initiateur de la discussion Initiateur de la discussion MJ13
  • 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 !

MJ13

XLDnaute Barbatruc
Bonjour à tous

J'ai, pour apprécier ma consommation d'esence dans mon nouveau programme de comptes (qui commence à me sortir par les yeux 😱), des valeurs comme ceci dans une cellule.

km125035P1.25

Je cherche une formule ou fonction ou en VBA pouvoir mettre dans les cellules d'à côté: 125035 et 1,25 (Mais je voudrais éviter de convertir la colonne).

Bien sur je peux avoir des nombres de km de 3 à plusieurs chiffres.

Merci d'avance 🙂.
 
Re : Extraire 2 nombres d'un texte

Bonjour Michel,

Une proposition formule :

Code:
=STXT(A1;3;CHERCHE("P";A1)-3)

et

Code:
=STXT(A1;CHERCHE("P";A1)+1;99)

à prévoir peut-être un SUBSTITUE pour remplacer le . par une ,

@+
 
Re : Extraire 2 nombres d'un texte

Bonjour Michel,

Une fonction possible:

Code:
=SUBSTITUE(DROITE(A1;NBCAR(A1)-TROUVE("P";A1));".";",")*1

Par VBA:

Code:
Valeur=val(Right(Range("A1"), Len(Range("A1")) - InStrRev(Range("A1"), "P")))
A+

[Edit] Hello Tibo🙂
 
Dernière modification par un modérateur:
Re : Extraire 2 nombres d'un texte

Bonjour Tibo, Ges

Merci beaucoup pour vos solutions qui vont me faire gagner quelques heures de travail 😉.

Bon, j'avance à petit pas mais pas comme je le voudrais. J'en ai au moins pour 1 semaine à 15 jours 😱.

Bonne soirée 🙂.
 
Re : Extraire 2 nombres d'un texte

Bonjour MJ13,Tibo, Hasco, le fil, le forum


Une autre possibilité
VB:
Sub a()
Dim s$
's = "km125035P10.25"
s = "km125035P1.25"
MsgBox Val(Split(s, "P")(UBound(Split(s, "P"))))
MsgBox Val(Mid(Split(s, "P")(0), 3, 256))
End Sub

EDITION: 😱 voila le prix du litre est redevenu plus raisonnable
 
Dernière édition:
Re : Extraire 2 nombres d'un texte

Re, Bonjour JM

JM: Merci aussi pour ta proposition.

Je les intégrerai dans la prochaine version (come cela, on aura le choix 😉).

Par contre 10 euros 25 litres, non de d..., tu as deviné le prix de l'essence dans 10 ans 😛.

Bonne soirée 🙂.
 
Re : Extraire 2 nombres d'un texte

Re


En attendant (peut-être le pattern de JNP 😉 ), voici une autre solution, cette fois-ci avec les expressions régulières.

VB:
Sub AvecRegExp()
Dim Rx As Object, Mh As Object, s$, KM, L, C$, m_essage$

s = "km125035P1.25"

Set Rx = CreateObject("vbscript.regexp")
With Rx
    .Global = True: .Pattern = "\d+": Set Mh = .Execute(s)
End With

KM = CLng(Mh(0)): L = Mh(1) & "," & Mh(2): C = Format(KM * L, "#,##0.00 €")

m_essage = "Total KM: " & KM & vbLf
m_essage = m_essage & "Prix du litre de carburant: " & L & " €" & vbLf
m_essage = m_essage & "Coût total: " & C

MsgBox m_essage

Set Rx = Nothing: Set Mh = Nothing
End Sub
 
Dernière édition:
Re : Extraire 2 nombres d'un texte

Bonjour à tous

JM: Merci beaucoup pour cette pépite avec les expression régulières si cher à ton coeur 😉.

C'est très intéressant, même si je n'ai pas tout compris 😕.

En plus c'est très intéressant car cela fonctionne si j'ai une virgule ou un point et si j'ai du texte après le prix du litre .

Avec Jean-Noël, vous êtes nos chercheurs fondamentaux en Expression régulières 🙂.
 
- 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

M
Réponses
7
Affichages
2 K
maxdrey
M
S
Réponses
7
Affichages
2 K
S
M
Réponses
4
Affichages
6 K
manu.verbe
M
V
Réponses
2
Affichages
2 K
vynmarius
V
J
Réponses
8
Affichages
10 K
jpr14
J
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…