Eclater nombre décimal

Lameche15 Messages postés 156 Date d'inscription mardi 9 septembre 2008 Statut Membre Dernière intervention 15 septembre 2022 - 9 févr. 2011 à 11:31
CGSI3 Messages postés 416 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 7 janvier 2018 - 9 févr. 2011 à 16:25
Bonjour,

J'aimerais pouvoir trouver un moyen simple par macro ou non de transformer un nombre de cette forme: 1,900
en cette forme: 1+900

Merci de votre aide

Cordialement

6 réponses

cs_loulou69 Messages postés 672 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 juin 2016 1
9 févr. 2011 à 12:23
Bonjour
en VBA

s="1,900"
s1=Mid(s,1, Instr(1,s,",")-1) 'rend 1
s2=Mid(s,Instr(1,s,",")+1) ' rend 900


ou avec des formules Excel

si A1="1,900"

alors =STXT(A1;1;CHERCHE(",";A1;1)) rend le nombre avant la virgule soit 1

=STXT(A1;CHERCHE(",";A1;1);NBCAR(A1)-CHERCHE(",";A1;1)+1)
rend 900
0
Lameche15 Messages postés 156 Date d'inscription mardi 9 septembre 2008 Statut Membre Dernière intervention 15 septembre 2022
9 févr. 2011 à 15:02
Merci pour cette réponse ultra rapide.
Par contre c'est de ma faute, j'aurais du dire des nombres de la forme: 00,000 à transformer sous la forme 00+000.
Je ne vois pas bien comment adapter tes formules. Je suis plus intéressé par la version vba comme ca je peux l'intégrer dans ma macro

Merci d'avance
0
cs_loulou69 Messages postés 672 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 juin 2016 1
9 févr. 2011 à 15:06
dans les 2 cas

je donne la formule pour extraire la partie à gauche de virgule et la partie à droite de la virgule

Il suffit de concaténer
en VBA
s1 & "+" & s2

sous excel ne faire qu'une formule en utilisant CONCATENER()

= CONCATENER(STXT(A1;1;CHERCHE(",";A1;1));"+";STXT(A1;CHERCHE(",";A1;1);NBCAR(A1)-CHERCHE(",";A1;1)+1))
0
Lameche15 Messages postés 156 Date d'inscription mardi 9 septembre 2008 Statut Membre Dernière intervention 15 septembre 2022
9 févr. 2011 à 15:08
Pardonne mon ignorance loulou69 et merci à toi pour ton aide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
CGSI3 Messages postés 416 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 7 janvier 2018 1
9 févr. 2011 à 16:18
Heu,
A la base, le chiffre 1,900 c'est un chiffre ou un string ?
Car , en macro, avec un chiffre il est assez simple de séparer les décimales de la partie entière avec Int ou Fix et tu pourrais utiliser Mod pour éplucher la partie décimal.
Mais rapidement pourquoi ne fais tu pas cela ?

Dim b As Integer, c As Double, a As Double
a = 12.9
c = Int(a) 'c=12
b = (a - c) * 1000 'b=900

Pour Loulou => surtout tres bien pour le code, mais pour aller plus loin, si la virgule n'est pas le caractere séparateur (Parametre régional de windows) mais un point comme sur mon PC.
Il faudrait alors prévoir une porte de sortie a la fonction.

Pour Lameche =>
"Pardonne mon ignorance" => Il n'est surtout jamais a blâmer a quelqu'un de s'instruire, c'est même un plaisir d'avoir des gens qui posent des questions.

Bonne continuation et bonne Prog a vous deux ..
CGSI3
0
CGSI3 Messages postés 416 Date d'inscription vendredi 22 février 2008 Statut Membre Dernière intervention 7 janvier 2018 1
9 févr. 2011 à 16:25
J'avais oublié ...
Si c'est un string tout simplement
a = Val("12.9")
0
Rejoignez-nous