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

extraction chiffre à virgule dans un texte vba Excel

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

A

agadiroufla

Guest
Bonjour,
Je fais appel à vous car je suis un peu bloqué.
avez vous un code VBA ou une forule qui permettrait d'extraire uniquement le chiffre à virgule dans un texte?
Exemple:
ABN AMRO BANK NV 3.375% 21/01/2014 -----> extraire dans A2 3.375
AREVA 4.625% 05/10/2017 ----> extraire dans A3 4.625
AUCHAN SA 4.75% 15/04/15 *EUR ---->extraire dans A4 4.75
AUTOROUTES PARIS RHIN-RH 5% 12/01/2017 ---->extraire dans A5 5
BANQUE POP 2.625% 07/12/2012 --->extraire dans A6 2.625
BAYERISCHE 3.5% 08/10/13 *EUR ---> extraire dans A7 3.5
et ainsi de suite.
Merci de votre aide.
 
Re : extraction chiffre à virgule dans un texte vba Excel

Bonjour,

un exemple pour traiter la cellule active, je te laisse adapter à ton projet, une boucle devrait suffire :
Code:
Dim s As String
s = Split(ActiveCell, "%")(0)
s = Mid(s, InStrRev(s, " ") + 1)

bonne journée
@+
 
Re : extraction chiffre à virgule dans un texte vba Excel

Bonjour agadiroufla, Bonjour Pierrot 🙂

pour le plaisir de le faire en formule 😉

Code:
=DROITE(SUBSTITUE(GAUCHE(A1;CHERCHE("%";A1)-1);" ";"µ";NBCAR(GAUCHE(A1;CHERCHE("%";A1)-1))-NBCAR(SUBSTITUE(GAUCHE(A1;CHERCHE("%";A1)-1);" ";"")));NBCAR(GAUCHE(A1;CHERCHE("%";A1)-1))-CHERCHE("µ";SUBSTITUE(GAUCHE(A1;CHERCHE("%";A1)-1);" ";"µ";NBCAR(GAUCHE(A1;CHERCHE("%";A1)-1))-NBCAR(SUBSTITUE(GAUCHE(A1;CHERCHE("%";A1)-1);" ";"")))))
 
Re : extraction chiffre à virgule dans un texte vba Excel

Bonsoir,

Code:
Sub essai()
  For Each c In [A1:A5]
    c.Offset(, 1) = num(c)
  Next c
End Sub

Function num(c)
  Application.Volatile
  Set obj = CreateObject("vbscript.regexp")
  obj.Pattern = "\d+.*\d*%"
  Set a = obj.Execute(c)
  If a.Count > 0 Then num = Left(a(0), Len(a(0)) - 1) Else num = ""
End Function

Par formule

Code:
=STXT(A1;EQUIV(VRAI;ESTNUM(CNUM(STXT(A1;LIGNE($1:$255);1)));0);NB(--(STXT(SUBSTITUE(GAUCHE(A24;CHERCHE("%";A1)-1);".";"0");LIGNE($1:$255);1))))
Valider avec maj+ctrl+entrée

pour num

=SUBSTITUE(STXT(A1;EQUIV(VRAI;ESTNUM(CNUM(STXT(A1;LIGNE($1:$232);1)));0);NB(--(STXT(SUBSTITUE(GAUCHE(A1;CHERCHE("%";A1)-1);".";"0");LIGNE($1:$232);1))));".";",")*1


JB
 

Pièces jointes

Dernière édition:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…