Excel traitement de chaîne par NBCAR : problème décimales avec 0

Fermé
maitreFolace Messages postés 2 Date d'inscription mercredi 3 octobre 2012 Statut Membre Dernière intervention 4 octobre 2012 - 3 oct. 2012 à 16:37
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 - 4 oct. 2012 à 13:05
Bonjour,

Bonjour,
sous excel 2003
Je cherche à concaténer une chaîne de caractères numérique variable pour en constituer une de 15 caractères avec décimale.
Ceci afin de la réinjecter dans un programme
Exemple
Avec 5250.43 en A1

Cela ne pose pas de problèmes
avec soit
=CONCATENER(GAUCHE("000000000000000";15-NBCAR(A1));A1)
=REPT("0";15-NBCAR(A1))&A1
j'obtiens bien
000000005250,43 : mon chiffre dans une chaîne de 15 caractères

Cependant si j'ai en A1 10.00
J'obtiens alors avec les deux fonctions
000000000000010 et non 000000000010.00
de même si j'ai en A1 25.60
j'obtiens alors
0000000000025,6 et non 000000000025,60

Même si je formate les cellules en nombre à 2 décimales ou en 000000000000.00
ce qui tendrait a montrer que le format n'influe pas sur les données mais, que les formules utilisées, elles influent sur le format de sortie.
Le problème viendrait de l'utilisation de NBCAR qui donne 2 pour 10.00 et 5 pour 10.01
Il y a t' il une autre solution ou une option de NBCAR que je n'ai pas trouvée ?

Dans l'attente de solutions concrètes
Bien cordialement




A voir également:

2 réponses

blux Messages postés 26010 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 26 avril 2024 3 289
3 oct. 2012 à 16:52
Salut,

le plus simple est d'utiliser la fonction texte :

=TEXTE(A1;"0000000000000,00")

A voir si tu as toujours deux décimales ?
1
PHILOU10120 Messages postés 6368 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 22 avril 2024 796
3 oct. 2012 à 17:25
Ou ça

=NBCAR(CTXT(a1)) résultat = 5
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
3 oct. 2012 à 17:28
Bonjour à tous,

non philou.
Et fais plutôt des réponses que des commentaires qu'on puisse te mettre -1 si besoin

eric
0
PHILOU10120 Messages postés 6368 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 22 avril 2024 796
3 oct. 2012 à 17:41
Pourquoi non ?
Je l'ai testé et cela fonctionne il suffit de l'incorporer dans la formule
=CONCATENER(GAUCHE("000000000000000";15-NBCAR(ctxt(A1)));CTXT(A1))
=REPT("0";15-NBCAR(CTXT(A1)))&CTXT(A1)
0
PHILOU10120 Messages postés 6368 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 22 avril 2024 796
3 oct. 2012 à 17:46
Je reconnais que votre methode est plus simple et logique
Mais ses formules pouvaient être complétées
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
Modifié par eriiic le 3/10/2012 à 17:51
Honnêtement, tu trouves vraiment que c'est mieux et plus simple que =TEXTE(A1;"0000000000000,00") qui est la bonne méthode ???

eric
0
maitreFolace Messages postés 2 Date d'inscription mercredi 3 octobre 2012 Statut Membre Dernière intervention 4 octobre 2012
4 oct. 2012 à 12:41
Merci à vous 2
La méthode d'Eriiic à l'avantage d'être simple mais si je met en A1 10.01 j'obtiens 0.10 ?! (je me suis peut être planté!)

Donc je prend celles de Philou10120 qui semblent me convenir et ont l'avantage de pouvoir mettre n'importe quel caractère à la place du 0

(j'me risque sur le bizard ... j'lui trouve un goût de pomme ;-) )
Merci encore à vous
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
4 oct. 2012 à 13:05
Bonjour,

Rendons à césar ce qui est à césar : c'est la proposition de blux.

Il faut bien sûr la modifier selon ton séparateur décimal par défaut. Si c'est le point alors :
=TEXTE(A1;"0000000000000.00")

eric
0