Formule détecter le rang caractère dans une cellule.

LeRevenant

XLDnaute Occasionnel
Salut les gens :)

J'ai lié un classeur excel avec une page web (pas de macro, pour actualiser, excel le fait tout seul toutes les minutes). Donc toutes les minutes, j'ai des données comme ceci sur une même colonne
Feuille1
A1: 153,45 BLAH BLAH
A2: 1542,87 BLAH BLAH BLAH
A3: 12587,65 XXXXXXX
etc

Le truc, c'est que j'aurais voulu mettre sur une autre colonne à part juste la partie chiffre, en gros on aurait ça :
Feuille2
A1: 153,45
A2: 1542,87
A3: 12587,65

Je pensais que si on pouvait déterminer le rang du caractère "," dans la cellule, on pourrait réussir à avoir juste les chiffres en utilisant la fonction : Feuille2!A1=gauche(Feuille1!A1;rang du caractère ","+2). Je pourrais le faire par macro, mais mon but est de tout faire avec des formules, car les donnée en feuille 1 s'alimentent automatiquement.

Voila tout :) et merci d'avance pour votre, si je suis pas clair, dites le moi :)
 

Modeste geedee

XLDnaute Barbatruc
Re : Formule détecter le rang caractère dans une cellule.

Bonsour®

= GAUCHE(A1:TROUVE(",";A1)+2)
ou bien
= GAUCHE(A1;TROUVE(" ";A1)-1)


Pb :
- que faire s'il n'y a pas de décimale ?
- que faire si il n'y a pas d'espace avant les autres caractères
 

JHA

XLDnaute Barbatruc
Re : Formule détecter le rang caractère dans une cellule.

Bonjour à tous,

En complément de la proposition de Modeste Geedee que je salue :)

Ci joint une solution avec une fonction personnalisée du forum

JHA
 

Pièces jointes

  • chiffre seul.xlsm
    16.3 KB · Affichages: 71

Modeste geedee

XLDnaute Barbatruc
Re : Formule détecter le rang caractère dans une cellule.

Bonsour®
avec un fonction personnalisée :
VB:
Function NumSeul(target)
Dim s$, i#
For i = 1 To Len(target)
s = s & IIf(InStr("01234567890,.", Mid(target, i, 1)) > 0, Mid(target, i, 1), "")
Next
NumSeul = s
End Function

pb :
- en cas ou il y aurait plusieurs groupes numériques ..
- si présence de plusieurs séparateurs
 

LeRevenant

XLDnaute Occasionnel
Re : Formule détecter le rang caractère dans une cellule.

= GAUCHE(A1:TROUVE(",";A1)+2)
Salut :)

Alors j'ai regardé ta 1ère réponse et t'as trouvé mon bonheur : la fonction trouve().

J'aurai pas le problème de l’absence de décimale, car si jamais ça tombe sur un nombre rond, ça s'affichera comme ça : 150,00 .

Mais je vais regarder la fonction "faite maison" que tu as faite, car j'aimerais savoir faire ça maintenant que je touche aux macros ;)

Encore merci :)
Bonne journée.
 

Discussions similaires

Statistiques des forums

Discussions
312 196
Messages
2 086 094
Membres
103 116
dernier inscrit
kutobi87