Résultat d'une chaine alphanumérique

sadicla

XLDnaute Occasionnel
Bonjour tout le monde

Cela faisait longtemps que je n'étais pas venu vous voir pour solliciter votre aide . Mon niveau ne s'est pas beaucoup amélioré, désolé ....:(
Voilà mon petit problème :
- en cellule A1 j'ai ceci : porte 0.80*2.00
- je souhaiterais avoir en cellule A2 le résultat directement, c'est à dire :1.60
Précision peut-être , je suis sous Excel 2000 .
Merci d'avance pour la réponse , et bonne journée à tous .
 

sadicla

XLDnaute Occasionnel
Re : Résultat d'une chaine alphanumérique

Ha PierreJean !!!

Une connaissance d'il y a bien 5 ans maintenant . Toujours fidèle au poste pour rendre service, un grand merci . C'est presque ce qu'il me faudrait, sauf que je ne voudrais que le résultat 1.60 , rien d'autre . Est-ce possible ??

PS : j'ai quand même une erreur sur cette formule . Le résultat est #NOM?
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Résultat d'une chaine alphanumérique

Re

Voila pour n'avoir que 1,6
Dans quel cas l'erreur ?
Et merci Tototiti
 

Pièces jointes

  • sadicla.xls
    32.5 KB · Affichages: 45
  • sadicla.xls
    32.5 KB · Affichages: 48
  • sadicla.xls
    32.5 KB · Affichages: 45

david84

XLDnaute Barbatruc
Re : Résultat d'une chaine alphanumérique

Bonjour tout le monde,
une autre fonction personnalisée à tester en utilisant un motif d'expression rationnelle :
Code:
Function Calcul2(c As String)
Dim oRegExp, Res, Item
c = Replace(c, ".", ",")
Set oRegExp = CreateObject("vbscript.regexp")
oRegExp.Pattern = "(\d+,\d+)\*(\d+,\d+)"
Set Res = oRegExp.Execute(c)
Set Item = Res(0)
Calcul2 = Item.submatches(0) * Item.submatches(1)
End Function
A+
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Résultat d'une chaine alphanumérique

Bonjour,

Fonctionne aussi si nombres sans décimales

=SUBSTITUE(STXT(A1;EQUIV(VRAI;ESTNUM(CNUM(STXT(A1;LIGNE($1:$255);1)));0);TROUVE("*";A1)-EQUIV(VRAI;ESTNUM(CNUM(STXT(A1;LIGNE($1:$255);1)));0));".";",")*SUBSTITUE(STXT(A1;TROUVE("*";A1)+1;9);".";",")
Valider avec Maj+ctrl+entrée

JB
 

Pièces jointes

  • Classeur1.xls
    13.5 KB · Affichages: 33
  • Classeur1.xls
    13.5 KB · Affichages: 34
  • Classeur1.xls
    13.5 KB · Affichages: 35
Dernière édition:

david84

XLDnaute Barbatruc
Re : Résultat d'une chaine alphanumérique

Re
toujours avec du RegExp, une autre manière en utilisant Evaluate :
Code:
Function Calcul3(c As String)
Dim oRegExp
Set oRegExp = CreateObject("vbscript.regexp")
oRegExp.Pattern = ".*(\d+.\d+\*\d+.\d+)"
c = oRegExp.Replace(c, "$1")
Calcul3 = Evaluate("=" & c)
End Function
A+
 
Dernière édition:

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Résultat d'une chaine alphanumérique

-Fonctionne avec ou sans décimales
-Les expressions sont acceptées
-Le séparateur de décimale peut être la , ou le .

porte 80*2
porte 1,80*2,0
La porte 1.80*2.1
La porte 1.80/3
La porte 1.80/4+6*6 Euros
La porte 1.80/4+6*6 $


Code:
Function calcul(chaine)
  Set obj = CreateObject("vbscript.regexp")
  obj.Global = True
  obj.Pattern = "([a-z,A-Z,\s,\$])+"
  calcul = Evaluate(obj.Replace(Replace(chaine, ",", "."), ""))
End Function

JB
 

Pièces jointes

  • Copie de Classeur1.xls
    22.5 KB · Affichages: 37
  • Copie de Classeur1.xls
    22.5 KB · Affichages: 37
  • Copie de Classeur1.xls
    22.5 KB · Affichages: 35
Dernière édition:

sadicla

XLDnaute Occasionnel
Re : Résultat d'une chaine alphanumérique

Re

Merci à vous tous . Hélas je n'y arrive pas . Pour que cela soit plus clair je vous met mon fichier . Merci encore de m'accorder un peu de temps, c'est sympa ...
 

Pièces jointes

  • Métré.xls
    48.5 KB · Affichages: 41
  • Métré.xls
    48.5 KB · Affichages: 41
  • Métré.xls
    48.5 KB · Affichages: 43

sadicla

XLDnaute Occasionnel
Re : Résultat d'une chaine alphanumérique

PierreJean

Mille excuses , c'est moi qui suit mauvais ... En fait çà pouvait pas fonctionner, car comme un idiot j'ai simplement mis dans mes cellules la formule "calcul()" sans avoir choisi cette fonction dans la liste ... ( fonction que tu avais sans doute fabriquée spécialement pour moi ) Comme çà effectivement çà risquait pas de fonctionner .
Je viens de comprendre seulement maintenant . Petit scarabé deviendra peut-être un jour grand .:rolleyes:
En tout cas un super merci à vous tous pour cet aide .
 

gauguin

XLDnaute Nouveau
Re : Résultat d'une chaine alphanumérique

Bonjour,

Une réponse par formule si on a toujours le même format, c'est à dire "porte" (ou autre chose) suivi d'un espace puis les chiffres (ex : 0,80*2,00) :
On utilise la fonction EVALUER (qui n'existe plus dans les nouveaux excel mais que l'on peut utiliser via définir un nom)
Dans définir un nom :
1 - Vous donnez un nom, ex : fonction1
2 - puis dans "fait référence à" vous mettez tel quel: =EVALUER(STXT(Feuil1!A1;TROUVE(" "; Feuil1!A1);NBCAR(Feuil1!A1)))
3 - en B1 vous entrez: =fonction1

Modifiez bien sûr les références de cellules. Dans l'exemple "porte 0,80*2,00" se trouve en A1.
Puis au fur à et à mesure que vous rajouter des lignes en colonne "A" vous tirez la formules (voir le classeur exemple)
 

Pièces jointes

  • Copie de sadicla.xls
    31 KB · Affichages: 41

Statistiques des forums

Discussions
312 316
Messages
2 087 178
Membres
103 491
dernier inscrit
bilg1