OVH Cloud OVH Cloud

Transformation séparateur point en séparateur virgule

4 réponses
Avatar
yorcroy
Bonjour =E0 toutes et tous,

Je suis dans les affres de la cl=F4ture annuel des comptes et je
rencontre le probl=E8me suivant :

Je dois pouvoir structurer des montants saisis sous Excel afin qu'ils
soient reconnus par un programme tiers au moment d'une importation.

Les montants en question doivent correspondre =E0 la structure suivante
:

Entier/Virgule/Deux chiffres apr=E8s la virgule.

Donc, si en A:A nous avons des chiffres saisi normalement sous Excel,
avec comme s=E9parateur d=E9cimal le point, la "transformation"
souhait=E9e en B:B serait la suivante :

A1 : 16 B1 : 16,00
A2 : 16.6 B2 : 16,60
A3 : 16.68 B3 : 16,68
A4 : 16.681 B4 : 16,68
A5 : 16.689 B5 : 16,69
A6 : 100.6 B6 : 100,60
A7 : 0.01 B7 : 0,01
A8 : 0.1 B8 : 0,10

Il est =E0 noter que le document sera enregistrer en format .txt et que
par cons=E9quent la colonne B:B n'a pas besoin d'=EAtre (et je dirais
m=EAme ne doit pas =EAtre) un chiffre reconnu comme tel par Excel (mais
bien une suite de caract=E8res txt).

Je patauge gloubs - help - merci d'avance - Croy

4 réponses

Avatar
FdeCourt
Hello,

SI la saisie normal sous Excel est le . pour le séparateur décimal
c'est probablement parceque les parametre régionnaux de ton pc son en
anglais.
Mets les en francais, et tu auras la virgule comme caractère de
separateur décimale.

Après tu n'as qu'a mettre un format ou tu n'affiche que deux
décimales après la virgule

Sinon, si tes chiffres sont stockés comme du texte, une formule (pas
la plus simple je pense, mais elle marche) :

=SI(ESTERREUR(TROUVE(".";F13;1));F13&",00";GAUCHE(F13;TROUVE(".";F13;1)-1 )&","&REPT("0";2-NBCAR(DROITE(F13;NBCAR(F13)-TROUVE(".";F13;1))))&DROITE(F1 3;NBCAR(F13)-TROUVE(".";F13;1)))


Bonjour à toutes et tous,

Je suis dans les affres de la clôture annuel des comptes et je
rencontre le problème suivant :

Je dois pouvoir structurer des montants saisis sous Excel afin qu'ils
soient reconnus par un programme tiers au moment d'une importation.

Les montants en question doivent correspondre à la structure suivante
:

Entier/Virgule/Deux chiffres après la virgule.

Donc, si en A:A nous avons des chiffres saisi normalement sous Excel,
avec comme séparateur décimal le point, la "transformation"
souhaitée en B:B serait la suivante :

A1 : 16 B1 : 16,00
A2 : 16.6 B2 : 16,60
A3 : 16.68 B3 : 16,68
A4 : 16.681 B4 : 16,68
A5 : 16.689 B5 : 16,69
A6 : 100.6 B6 : 100,60
A7 : 0.01 B7 : 0,01
A8 : 0.1 B8 : 0,10

Il est à noter que le document sera enregistrer en format .txt et que
par conséquent la colonne B:B n'a pas besoin d'être (et je dirais
même ne doit pas être) un chiffre reconnu comme tel par Excel (mais
bien une suite de caractères txt).

Je patauge gloubs - help - merci d'avance - Croy


Avatar
MichDenis
à l'aide d'une macro :

Modifie le nom de la feuille et de la plage si nécessaire :
'----------------------------
Sub test()

Dim Rg As Range
With worksheets("Feuil1")
Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
End With
For Each c In Rg
If IsNumeric(c) Then
t = c.Value
If InStr(1, t, ".", vbTextCompare) <> 0 Then
c.Offset(, 1).Value = Replace(t, ".", ",")
Else
c.Offset(, 1).Value = t & ",00"
End If
End If
Next
End Sub
'----------------------------


a écrit dans le message de news:

Bonjour à toutes et tous,

Je suis dans les affres de la clôture annuel des comptes et je
rencontre le problème suivant :

Je dois pouvoir structurer des montants saisis sous Excel afin qu'ils
soient reconnus par un programme tiers au moment d'une importation.

Les montants en question doivent correspondre à la structure suivante
:

Entier/Virgule/Deux chiffres après la virgule.

Donc, si en A:A nous avons des chiffres saisi normalement sous Excel,
avec comme séparateur décimal le point, la "transformation"
souhaitée en B:B serait la suivante :

A1 : 16 B1 : 16,00
A2 : 16.6 B2 : 16,60
A3 : 16.68 B3 : 16,68
A4 : 16.681 B4 : 16,68
A5 : 16.689 B5 : 16,69
A6 : 100.6 B6 : 100,60
A7 : 0.01 B7 : 0,01
A8 : 0.1 B8 : 0,10

Il est à noter que le document sera enregistrer en format .txt et que
par conséquent la colonne B:B n'a pas besoin d'être (et je dirais
même ne doit pas être) un chiffre reconnu comme tel par Excel (mais
bien une suite de caractères txt).

Je patauge gloubs - help - merci d'avance - Croy
Avatar
Garette
Bonjour,

Solution 1 avec formule
=REMPLACER(TEXTE(A1;"#0.00");NBCAR(TEXTE(A1;"#0.00"))-2;1;",")

Solution 2 sans formule
- Appliquer un format Nombre #0.00 aux cellules concernées
- Aller dans Outils/Options/Calculs et cocher "Calcul avec la précision au
format affiché"
- Aller dans Edition/Remplacer . par ,
Il est à noter que cette solution tronque définitivement les nombres.
Si on souhaite conserver les valeurs, enregistrer le fichier avant puis
fermer sans sauvegarder apres la manipulation
Avatar
yorcroy
Solution 1 avec formule
=REMPLACER(TEXTE(A1;"#0.00");NBCAR(TEXTE(A1;"#0.00"))-2;1;",")


La solution 1 de Garette répond très exactement à mon problème :
super ça me tire une sale épine du pied !

Merci FdeCourt, MichDenis et Garette pour votre aide précieuse - Croy