Séparateur décimal dans Excel

hadhad

Membre enregistré
23 Novembre 2007
9
0
Bonjour,


j'aimerai que le séparateur décimal de Excel 2004 (for mac) soit le point et non la virgule.

J'ai déjà vu quelque part sur le forum qu'une des solutions est d'utiliser le format Américain et le clavier Français numérique. Mais du coup j'ai les dates en format US :-(

J'aimerai ne changer cela que dans Excel pas sur tout mon système. Est ce qu'il y a une solution ?

Merci !

Notes: j'utilise Mac OS X 10.4.10
 
Bonjour et bienvenue sur MacGé :)

Sur mon PC du boulot, je choisi "Options" dans le menu "Outils" et ensuite, onglet "International"... ;)

Ca doit pas être très différent sur Mac...

:zen:
 
Sur PC, il y a effectivement ce que tu dis... mais sous mac.. je trouve vraiment rien relatif aux paramêtres internationaux dans Excel....

Merci qd même
 
Si je peux, je regarde sur mon Mac ce midi. Sinon, BernardRey va bien passer dans le coin et te trouver la solution ;)

:zen:


 
Sur PC, il y a effectivement ce que tu dis... mais sous mac.. je trouve vraiment rien relatif aux paramêtres internationaux dans Excel...
La version Mac d'Excel utilise les paramétrages qui sont choisis dans le panneau de préférences "International" (sous réserve d'avoir quitté et relancé Excel, bien entendu).

Par contre, ça n'a pas une grande importance dans le fonctionnement quotidien : un classeur utilisé sur un Mac français, avec la virgule comme séparateur décimal, qu'on enregistre, qu'on transmet à son correspondant aux Etats-Unis sous Windows, s'ouvrira avec le point comme séparateur décimal sur sa machine. En quelque sorte, ce qui est enregistré dans le classeur ce n'est pas "point" ou "virgule" mais "séparateur décimal". L'affichage n'étant en quelque sorte qu'un style.

Quel est le problème que tu essayes de résoudre avec ce changement ? Il y a peut-être une autre méthode pour le contourner...​
 
  • J’aime
Réactions: wip
Merci pour l'éclairage sur la transportabilité des fichiers.

Mon problème est le suivant: j'analyse des fichiers de résultats numériques (produits par un programme en C++) donc avec un point comme séparateur décimale. Je me sert d'Excel pour faire des affichages plus joli et quelques calculs...

voilà ! Donc ce que j'aimerai c'est utilisé le point comme séparateur numérique par défaut dans Excel.

Merci pour votre aide
 
j'analyse des fichiers de résultats numériques (produits par un programme en C++) donc avec un point comme séparateur décimale. Je me sert d'Excel pour faire des affichages plus joli et quelques calculs...
OK, je crois que c'est ce que je pensais : un souci lié à l'import de données à partir de fichiers texte. La présence des points fait que les données ne sont pas considérées comme des nombres, mais comme des chaînes de texte.

Il est assez rapide de faire un "rechercher/remplacer" des points par des virgules (menu "Edition"). Si c'est une opération que tu es amené à faire (très) fréquemment, une petite macro te permettra de le faire d'un clic sur un bouton.​
 
Il est assez rapide de faire un "rechercher/remplacer" des points par des virgules (menu "Edition"). Si c'est une opération que tu es amené à faire (très) fréquemment, une petite macro te permettra de le faire d'un clic sur un bouton.​

Je viens d'essayer cette solution. Dans ce cas, il reste un tout petit problème...
Après le remplacement, Excel considère toujours que mes nombres sont "stockés en tant que texte"... Ce n'est pas très grave je peux faire des calculs dessus mais c'est quand même énervant qu'ils soient mal alignés :-( Biensur je pourrai changer le format pour chaque nombre mais c'est long....

Je cherchai plus une solution comme celle évoquée par wip :

wip a dit:
Sur mon PC du boulot, je choisi "Options" dans le menu "Outils" et ensuite, onglet "International"...
 
Et si tu changes les préférences internales de ton mac juste pendant l'importation de tes fichiers Excels ?
 
Après le remplacement, Excel considère toujours que mes nombres sont "stockés en tant que texte"... Ce n'est pas très grave je peux faire des calculs dessus mais c'est quand même énervant qu'ils soient mal alignés
- Dans une cellule vide tu tapes 1 (le chiffre 1)
- Tu copies cette cellule
- Tu sélectionnes tes données initiales converties
- Par le menu "Edition" > "Collage spécial..." tu choisis le bouton "Multiplier" et tu colles
Toutes tes cellules sont converties au format nombre par enchantement.​

Comme pour le remplacement, ça peut se faire par macro si ça doit être fait régulièrement.​

Je cherchai plus une solution comme celle évoquée par wip
Oui. Mais j'ai bien peur que ça te prenne plus de temps pour chercher (et ne pas trouver) que de procéder comme ça ;) Sans compter que, avec les macros, c'est tout ce qu'il y a de rapide, quand même, si on doit le faire régulièrement.​

Remarque, je regarderai ce soir si on ne peut pas faire une macro qui permette d'importer directement des fichiers comportant des points décimaux. Mais bon, ça ou les convertir avec une macro...​

Et si tu changes les préférences internes de ton mac juste pendant l'importation de tes fichiers Excel ?
Ben oui, évidemment. Mais personnellement, je trouve que c'est plus lourd que la conversion après coup.​
 
Il me semble que, en créant un format Cellule/Nombre de type : 0.00 et en l'appliquant à toute la feuille, ça devrait le faire.

edit : Je viens de tester sur une feuille vierge et en tapant "15,2", Excel affiche "15.20"
Nouvel edit : malheureusement, si on tape "15.2", la cellule est considérée comme de l'alpha.
 
Comme pour le remplacement, ça peut se faire par macro si ça doit être fait régulièrement.

Allez, on revient vite fait à la charge. Voilà une petite macro qui permet de convertir et mettre en forme une feuille importée avec des points à la place des virgules :

Bloc de code:
Sub ConvertissezMoi ()
With ActiveSheet.UsedRange
    .Cells.Replace What:=".", Replacement:=",", LookAt:=xlPart, SearchOrder _
        :=xlByRows, MatchCase:=False
    .NumberFormat = "# ##0.00"
    For Each c In .Cells
        If c.Value <> "" Then c.Value = c.Value * 1
    Next
End With
End Sub
On peut encore fignoler, sûrement, selon les besoins et c'est probablement à tester un peu. Mais, en gros, c'est le principe. Il reste à l'attacher à un bouton sur une barre d'outils et voilà, d'un clic on convertit la feuille active...
 
Bonjour,

en faite la macro marche pas... Une fois exécuté, je n'ai plus de chiffres à virgule:
par exemple si j'avais 28.9203 j'obtiens 289 203...

par contre si je fais remplacer (par le menu Edition...), cela marche... je pense que la macro ne comprend pas qu'il s'agit du séparateur décimal et l'interprète mal...

Est ce que vous avez des idées pour adapter la macro ?

Merci
 
Est ce que vous avez des idées pour adapter la macro ?
Pas trop, dans la mesure où, chez moi, ça fonctionne. Cela peut dépendre du fichier d'origine (ce n'est peut-être pas juste un bête fichier texte). Cela peut dépendre des paramétrages de la machine (mois c'est français de France). Dans ton exemple, on dirait que la macro remplace le point par rien...

Tu peux toujours (par "Outils" > "Macro" > "Nouvelle Macros...") enregistrer l'opération de remplacement puis, dans l'éditeur de Macros, comparer l'instruction enregistrée avec celle de la macro Cells.Replace What:=".", Replacement:=",",etc.

Si tu n'arrives à rien et que ton fichier d'origine ne contient pas de données confidentielles, contacte-moi par MP pour m'en envoyer un exemplaire.​
 
Cela peut dépendre du fichier d'origine (ce n'est peut-être pas juste un bête fichier texte). Cela peut dépendre des paramétrages de la machine (mois c'est français de France).


j'ai vérifié et le problème se passe même sur un fichier excel créé par Excel :-( Pour ce qui est des paramètres internationales, j'ai français de France aussi...


Dans ton exemple, on dirait que la macro remplace le point par rien...

oui j'ai l'impression...


Tu peux toujours (par "Outils" > "Macro" > "Nouvelle Macros...") enregistrer l'opération de remplacement puis, dans l'éditeur de Macros, comparer l'instruction enregistrée avec celle de la macro Cells.Replace What:=".", Replacement:=",",etc.

j'ai essayé et la macro enregistré contient la même chose que celle que tu me proposais pour le remplacement...

Je vais t'envoyer mon fichier en MP pour que tu me dises ce que cela fait chez toi. Encore merci pour ton aide, c'est vraiment très gentil.


 
Je vais t'envoyer mon fichier en MP pour que tu me dises ce que cela fait chez toi.
Bon, on avance (un peu). Je ne sais pas encore dire si c'est un bug ou un souci d'instruction. Mais je viens de découvrir que, si on met un nombre avec un maximum de deux décimales, la macro fonctionne (essaye en mettant "12.5" en A1). Par contre, dès qu'il y a plus de deux chiffres après le point "décimal", ça ne fonctionne plus, même si ce sont des zéros (essaye avec "12.000"). Or, dans ta feuille, les données ont systématiquement six décimales. Et moi, évidemment, j'avais fait des essais avec des nombres à une ou deux décimales !

Bon, je soupçonne une sorte de "cafouillage" entre le format US et le format FR, sachant que dans VBA, tous les formats doivent être donnés en US (alors que dans la feuille de calcul ce n'est pas le cas). Or la virgule est le séparateur des milliers en US, peut-être que ça se télescope quelque part. Le problème est le même dans la version Windows, ce n'est donc pas spécifique à la version Mac.

Allez, j'y retourne, je suis sûr qu'il doit y avoir une solution ;-)
 
Allez, j'y retourne, je suis sûr qu'il doit y avoir une solution ;-)
Ah, ça va mieux. En rusant un peu on y arrive sans trop de bobo. Mais il faut (suis-je bête) penser justement à cette histoire de formats numériques qui cloche et ne pas s'obstiner à vouloir mettre une virgule. Il faut se contenter de convertir la chaîne (au format US par définition, ce qu'on vérifie avec la présence d'un point) en nombre (fonction Val) et voilà...


Bloc de code:
Sub IlReconnaitraLesSiens()
With ActiveSheet.UsedRange
    For Each c In .Cells
        If InStr(c.Value, ".") <> 0 Then
            c.Value = Val(c.Value)
        End If
    Next c
    .NumberFormat = "# ##0.00"  ' facultatif, of course
End With
End Sub
 
La dernière macro marche à merveille ! C'est vraiment très astucieux !
Effectivement, il ne doit pas stocker le nombre au format affiché.... Bien vu !

Un immense merci pour votre patience et la solution à mon problème.