Formule ne fonctionnant pas sur Mac

Bonjour,

Dans le fichier ci-joint, j’ai une formule en F29 ="Km à CHF " & TEXTE(Informations!B5;"0.00") qui fonctionne bien sur Windows.

J’ai donné ce fichier à un ami qui travaille sur Mac – je crois qu’il a la version Excel 2011 - et, à la place du résultat souhaité : ‘’Km à CHF 0.60’’, ça indiquait un message d’erreur. J’ai bien essayé d’élargir la colonne, mais ça ne changeait rien.

Pouvez-vous me dire si cette formule fonctionne bien sur un autre Mac et/ou si la résolution de ce problème est connue.

Cordialement.

20demo-21-10.xlsm (58.32 Ko)

Bonjour Yvouille,

je te retourne ton fichier modifié :

14demo-21-10.xlsm (48.28 Ko)

dhany

Salut dhany,

Merci beaucoup pour ta réponse.

J’ai remarqué que tu as remplacé le point dans ma formule par une virgule. Mais en Suisse, le séparateur officiel est un point, d’où ma manière d’écrire le prix de référence sur la feuille ‘’Information’’ et ma manière d’écrire la formule sur la feuille ‘’Rapport de randonnee’’, en F29.

Vu mon système suisse, avec ta formule, ça renvoi maintenant un résultat incorrect sur Windows (‘’Km à CHF 0,01’’ – avec une virgule et un montant erroné - au lieu de ‘’Km à CHF 0.60’’).

J’imagine donc qu’il se peut que certains Suisses n’aient pas formaté leur Mac pour le pays qu’ils habitent et que ce genre de formules helvétiques ne fonctionne pas sur leur machine, comme ça ne fonctionne pas sur des machines non suisses. Est-ce que ça te semble réaliste ?

Si nécessaire, j’ouvrirai un deuxième sujet en m’adressant spécialement aux possesseurs de Mac en Suisse.

Très bonnes salutations.

dans ce cas, je crois que ceci pourra t'aider (c'est juste une piste) :

Sub Essai()
  MsgBox Application.DecimalSeparator
End Sub

très bonnes salutations à toi aussi.

dhany

Rebonjour,

Ton idée est assez bonne, mais j’obtiens des résultats étranges.

J’ai modifié un tout petit peu ton code afin de bien pouvoir distinguer un point d’une virgule dans la réponse par MsgBox et ça me renvoie que j’ai un séparateur sous forme de virgule alors qu’en réalité c'est bel et bien un point (voir les images jointes).

capture 2 capture 1

Est-ce que le séparateur décimal de l'application et mon séparateur décimal régional sont deux choses différentes ?

Il va valoir que je retourne sur la machine de mon ami ou que sais-je d’autre.

Dans tous les cas, un grand merci pour ton aide.

Est-ce que le séparateur décimal de l'application et mon séparateur décimal régional sont deux choses différentes ?

bonjour à vous

tu as la piste !

j'ai eu ce genre de déconvenue avec d'autres logiciels

et j'ai dû remapper le . du pavé numérique avec AutoHotKey pour un logiciel.

bon travail

amitiés à tous

Salut jmd,

Merci pour ton eau apportée au moulin.

Je n'ai pas très bien compris ton passage en indo-chinois ou dans une de ces langues que je ne comprends pas : "j'ai dû remapper le . du pavé numérique avec AutoHotKey pour un logiciel"

Concrètement, que devrait faire mon ami sur son Mac afin que les formules qui fonctionnent chez moi sur Windows fonctionnent également chez lui ?

Amicalement.

re

1/ pour info

https://www.commentcamarche.net/forum/affich-33693341-aide-pour-remappage-clavier-mac

2/ concrètement

voir sur son Mac les paramètres systèmes (langues, zones, nombres....) et les paramètres Excel

amitiés

@Yvouille

j'étais sorti un moment, d'où le retard de ma réponse ; sur ma version d'Excel PC, j'ai cette option avancée :

screen

* quand la case « Utiliser les séparateurs système » est cochée, Excel utilise les séparateurs définis dans les paramètres régionaux (hors d'Excel, aller sur le Bureau de Windows, puis : Panneau de configuration, Région et langue)


* si la case précédente est décochée, ce sont les 2 autres séparateurs indiqués en dessous qui sont utilisés ; c'est fait tout exprès pour permettre à l'utilisateur d'utiliser sous Excel 2 séparateurs différents de ceux du système, s'il le préfère.

exemple : un utilisateur français qui travaille en Angleterre peut mettre la virgule comme séparateur décimal même si le point est défini dans les paramètres régionaux.


je pense que tu dois pouvoir trouver la même chose sur Macintosh ; bonne chance !

dhany

Bonjour,

pour avoir le séparateur en cours sur les feuilles (c'est à dire en tenant compte de l'activation ou non de l'option d''excel Utiliser les séparateurs système)

Par formule (sur feuille !)le plus simple c'est :

=STXT(1/2;2;1)

En VBA :

Application.International(xlDecimalSeparator)

qui tient compte également de l'état de l'option Utiliser les séparateurs système

NB : Application.DecimalSeparator retourne le séparateur décimal défini dans les options d'excel, qu'il soit utilisé ou non et ne convient pas.

eric

Bonsoir,

Yvouille si tu mets ta formule sous MAC cela ne fonctionne pas sauf si l'utilisateur change les paramètres du menu Preference -> langue et Texte et Région -> General. Ensuite mettre la virgule dans "Décimal" (Tout cela sous OSX High Sierra)

Par contre, pourquoi ne pas mettre simplement ceci --> ="Km à CHF " & Informations!B5

Sous mac cela donne --> Km a CHF 0,6

Cordialement

Bonsoir Dan,

[quote="dans son énoncé, Yvouille"]j’ai une formule en F29 ="Km à CHF " & TEXTE(Informations!B5;"0.00") qui fonctionne bien sur Windows.[/quote]

* il utilise la fonction TEXTE() pour avoir toujours 2 chiffres après la virgule ; exemple : 0.60 et pas 0.6

* je pense qu'il tient à avoir 2 décimales pour des montants en euros (ou francs suisses) et centimes

dhany

Bonsoir tout le monde,

Merci à vous tous pour votre aide.

@ jmd

Je vais effectivement voir sur la machine de mon ami si le fait de modifier ses paramètres peuvent améliorer les choses.

@dhany

J’ai remarqué que si je change ces paramètres pour un fichier Excel, ça les change pour tous. Donc mon espoir – en te lisant - de pouvoir modifier les paramètres pour ce fichier et que ça suive lorsque je le partage se sont évanouis. Mais à voir chez mon ami si le changement des paramètres à cet endroit est la solution.

@ eriiic

Idées très intéressantes pour connaitre le séparateur, surtout celle sans macro.

@ dan

Comme je l’ai dit à jmd, je vais effectivement voir pour modifier les paramètres chez mes amis. En ce qui concerne le résultat ‘’Km à CHF 0,6’’, ça m’embête terriblement, car j’ai déjà tellement dû faire de concessions à cause de ces maudits Mac – par exemple au niveau des noms de feuilles et des textes dans les MsgBox sans accents – que je n’aurais pas voulu encore en faire au niveau de ce format monétaire qui s’écrit, comme le dit justement dhany, avec deux chiffres après la virgule.

Bonne soirée.

Bonjour Yvouille,

tu a écrit :

J’ai remarqué que si je change ces paramètres pour un fichier Excel, ça les change pour tous.

oui, effectivement, j'ai pas pensé à préciser que les 3 paramètres d'options avancées que j'avais décrits sont des paramètres généraux pour tous les classeurs Excel ; je crois que c'est le post d'eriiic d'hier à 18:04 qui pourra le mieux t'aider ; perso, j'ai pas d'autre idée à proposer (et moi non plus, j'aime pas les Macintosh, vive les PC ! ).

dhany

Bonjour

@dhany

* il utilise la fonction TEXTE() pour avoir toujours 2 chiffres après la virgule ; exemple : 0.60 et pas 0.6

Ben oui, j'avais tout de même pigé ce qu'il veut faire.

Yvouille, comme Apple est une société américaine, les paramètres sont virgules et points dans les chiffres sont contraires à notre manière de procéder. Donc si le gars change les paramètres comme je t'ai expliqué avant, il devrait obtenir ce que 0,60.

Dans ta formule que je proposais de modifier, le souci est rencontré lorsque le deuxième chiffre après la virgule est 0.

Je regarderai ce soir s'il n'y a pas une case à cocher spécifique mais à priori je ne pense pas.

Cordialement

re à tous

Dan,

Microsoft aussi est américain

Yvouille,

en plus de ton problème de virgule, supprime tout VBA, peu stable d'un OS à l'autre.

On s'en passe très bien.

amitiés excelliennes à tous

re

@ jmd

Dan,

Microsoft aussi est américain

lol !

re

Yvouille, essaie ceci --> ="Km à CHF "&TEXTE(INDIRECT("Informations!B5");"0,00")

Cela fonctionne sous MAC ! et par formule pour faire plaisir à JMD...

Plus logique il me semble.

Cordialement

Bonjour,

ce qui gène surtout c'est le . ou la , dans le format selon le paramétrage du poste.

Je mettrais plutôt :

="Km à CHF " & TEXTE(Informations!B5;"0"&STXT(1/2;2;1)&"00")

Mais je pense qu'il l'avait avec mon précédent post.

eric

Bonsoir tout le monde,

Merci à vous tous pour vos propositions d’aide.

En deux mots d'explication, j’ai développé un petit fichier plein de macros super intéressantes et irremplaçables par formules ou autres – t’en as pris bonne note, jmd – et qu’il est utilisé par une vingtaine de personne par l’intermédiaire de l’Intranet d’un club. Il m’arrive de rencontrer également ces gens chez eux.

Il y a donc pleins de versions Mac, Windows, Excel qui sont concernées et ça complique passablement la tâche.

J’avais ouvert ce fil après avoir rencontré une personne qui possède un Mac dont j’ignore l’OS, avec une version Excel 2011 et chez qui ma formule ne passait pas. J’en avais déduit un peu rapidement qu’il s’agissait d’un problème ‘’Mac’’.

Puis j’ai encore vu deux personnes qui ont des appareils Mac plus récents (OS High Sierre / Excel 2016) et là, ça fonctionne. Bon, d’une manière un peu bizarre, mais ça fonctionne. Si vous regardez l’image ci-dessous, il y a un point dans le résultat de ma formule et des virgules dans les cellules au format monétaire normal (mais c’est selon moi faux en Suisse – bien que peu important - puisque le séparateur décimal normal est un point).

capture

Cependant, vos solutions m’intéressent vraiment et je vais continuer à creuser la chose. J’imagine créer un fichier test avec plusieurs de vos formules et l’envoyer à ces personnes afin qu’elles essaient les différentes solutions chez elles. Ceci prendra toutefois pas mal de temps.

Cordialement.

Rechercher des sujets similaires à "formule fonctionnant pas mac"