EXTRAIRE CHIFFRE

mkway27

XLDnaute Nouveau
Bonjour ,

je souhaite extraire à partir d'une formule ou d'un code vba les chiffres contenus dans une cellule avec du texte.
Je peux avoir ce chiffre écrit comme suit:
6,535g / 100g
6,535 g / 100g
6,535g/100g
6,35 g /100g
6.535 g / 100g
je souhaite extraire les chiffres jusqu'au caractère "g" , je ne veux pas ceux correspondant à 100g
j'ai essayé plusieurs formules mais qui selon l’écriture dans la cellule ne répond pas à mon besoin.

Merci par avance pour votre aide.

Mick
 

Jocelyn

XLDnaute Barbatruc
Bonjour le Forum,
Bonjour mkway27,

Bienvenue sur XLD

a tester en B1 et a étirer jusqu'en B5 pour des valeurs de démarage en A1:A5

=SUBSTITUE(STXT(A1;1;CHERCHE("g";A1)-1);".";",")*1

Cordialement

EDIT Bonjour l'ami JHA :)
 
Dernière édition:

mkway27

XLDnaute Nouveau
Bonjour le Forum,
Bonjour mkway27,

Bienvenue sur XLD

a tester en B1 et a étirer jusqu'en B5 pour des valeurs de démarage en A1:A5

=SUBSTITUE(STXT(A1;1;CHERCHE("g";A1)-1);".";",")*1

Cordialement

EDIT Bonjour l'ami JHA :)
Bonjour ,
Merci pour votre réponse qui m'aide bien pour mon problème.
Question supplémentaire , si la lettre qui est ici un g venait à changer et était remplacer
par une autre lettre comment doit on réadapter la formule si cela est possible.

Merci encore pour votre aide.

Mick
 

mkway27

XLDnaute Nouveau
Bonjour à tous,

Avec tes données en A1:Axxxx
Code:
=STXT(A1;1;CHERCHE("g";A1))
A copier vers le bas

Edit: Bonjour Jocelyn:)

JHA
Bonjour,

Merci pour votre réponse.
En complément à mon retour pour Jocelyn , peut on au moins identifier dans une cellule
alphanumérique en en partant de la gauche vers la droite identifier nin pas le premier caractère ( ex: , ou . )
mais la première lettre en minuscule ou majuscule.

Merci pour votre aide.

Mick
 

job75

XLDnaute Barbatruc
Bonjour,

Formule matricielle à valider par Ctrl+Maj+Entrée :
Code:
=--GAUCHE(A1;MIN(SI(ESTNUM(-TROUVE(CAR(LIGNE(INDIRECT("65:90")));MAJUSCULE(A1)));TROUVE(CAR(LIGNE(INDIRECT("65:90")));MAJUSCULE(A1))))-1)
ou avec SIERREUR à partir d'Excel 2007 :
Code:
=SIERREUR(--GAUCHE(A1;MIN(SI(ESTNUM(-TROUVE(CAR(LIGNE(INDIRECT("65:90")));MAJUSCULE(A1)));TROUVE(CAR(LIGNE(INDIRECT("65:90")));MAJUSCULE(A1))))-1);"")
A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re,

Si le nombre du texte à étudier a un séparateur décimal différent de celui de l'ordi :
Code:
=--GAUCHE(SUBSTITUE(SUBSTITUE(A1;",";STXT(1/10;2;1));".";STXT(1/10;2;1));MIN(SI(ESTNUM(-TROUVE(CAR(LIGNE(INDIRECT("65:90")));MAJUSCULE(A1)));TROUVE(CAR(LIGNE(INDIRECT("65:90")));MAJUSCULE(A1))))-1)
Code:
=SIERREUR(--GAUCHE(SUBSTITUE(SUBSTITUE(A1;",";STXT(1/10;2;1));".";STXT(1/10;2;1));MIN(SI(ESTNUM(-TROUVE(CAR(LIGNE(INDIRECT("65:90")));MAJUSCULE(A1)));TROUVE(CAR(LIGNE(INDIRECT("65:90")));MAJUSCULE(A1))))-1);"")
Toujours avec validation matricielle.

A.
 

job75

XLDnaute Barbatruc
Re,

En VBA on utilisera cette fonction :
Code:
Function PremierNombre(t$)
Dim i%
PremierNombre = ""
t = Replace(t, ",", ".")
For i = 1 To Len(t)
  If IsNumeric(Mid(t, i, 1)) Then PremierNombre = Val(Mid(t, i)): Exit Function
Next
End Function
A placer impérativement dans un module standard.

Dans la feuille de calcul on entrera simplement la formule =PremierNombre(A1)

A+
 
Dernière édition:

Discussions similaires

Réponses
5
Affichages
323
Réponses
9
Affichages
362

Membres actuellement en ligne

Statistiques des forums

Discussions
314 190
Messages
2 107 001
Membres
109 735
dernier inscrit
Mounskad