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

maitreFolace Messages postés 2 Statut Membre -  
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   -
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 19334 Date d'inscription   Statut Modérateur Dernière intervention   3 367
 
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 6453 Date d'inscription   Statut Contributeur Dernière intervention   829
 
Ou ça

=NBCAR(CTXT(a1)) résultat = 5
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
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 6453 Date d'inscription   Statut Contributeur Dernière intervention   829
 
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 6453 Date d'inscription   Statut Contributeur Dernière intervention   829
 
Je reconnais que votre methode est plus simple et logique
Mais ses formules pouvaient être complétées
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
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 Statut Membre
 
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 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
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