Numeriblog Google Workspace Google Sheets, le tableur surpuissant Le point et la virgule avec Google Sheets – Partie 3 : Transformer le point saisi en une virgule

Le point et la virgule avec Google Sheets – Partie 3 : Transformer le point saisi en une virgule

Dans les deux premières parties de cet article, j’évoquais la difficulté engendrée pour certains habitués d’Excel et du pavé numérique, par le passage à Sheets, qui attend une virgule comme séparateur décimal, et non pas […]

personnes ont consulté cet article

4 minutes

Rédigé par Marielle Silberstein - il y a 7 mois

Ce que vous allez découvrir

  • Utiliser un pavé numérique externe pour transformer un point en virgule sous Sheets
  • Utiliser la fonction rechercher-remplacer pour transformer un point en virgule sous Sheets
  • Utiliser un script qui transforme instantanément le point en une virgule
  • Et si c’était possible de choisir son séparateur décimal ...

Le point et la virgule avec Google Sheets – Partie 3 : Transformer le point saisi en une virgule

Dans les deux premières parties de cet article, j’évoquais la difficulté engendrée pour certains habitués d’Excel et du pavé numérique, par le passage à Sheets, qui attend une virgule comme séparateur décimal, et non pas le point que lui envoie le pavé numérique.


Dans la Partie 1, j’avais tout d’abord détaillé comment se prémunir des erreurs potentielles de saisie en paramétrant une validation des données

Puis dans la Partie 2 j’avais exploré la possibilité de modifier le paramétrage de Google Sheets pour qu’il accepte le point comme séparateur décimal

Dans cette troisième partie, nous allons voir comment contourner le problème avec trois méthodes qui permettent de transformer le point saisi en une virgule.

Et un bonus à ne pas manquer à la fin de l’article 😉 …

Utiliser un pavé numérique externe pour transformer un point en virgule sous Sheets

Si vous pouvez saisir sur Excel un point avec le pavé numérique et qu’il est remplacé par une virgule, c’est que Excel interprète l’information envoyée par le pavé numérique.

Avec Google Sheets, une solution permet de contourner le fait que le point du pavé numérique classique ne soit pas interprété correctement. C’est l’utilisation d’un pavé numérique externe, branché sur un port USB de votre ordinateur. Il semble en effet que certains pavés numériques envoient une information que Google Sheets est capable d’interpréter comme une virgule. Mais ça ne fonctionne pas sur tous les systèmes d’exploitation.

J’ai pu effectuer des tests avec le PAVÉ NUMÉRIQUE ESSENTIELB SLIM KLAVIA vendu par les magasins Boulanger.

Si vous avez un Mac, alors vous allez pouvoir oublier toutes les autres solutions de contournement que j’ai décrites dans cette série d’articles. Une fois le pavé numérique branché, lorsque vous actionnez la touche « . » du pavé, dans Google Sheets c’est une « , » qui s’affiche. Bingo !

Malheureusement, si vous travaillez sur Windows ou ChromeOS, un point donne toujours un point avec ce pavé numérique externe 🙁

Si de votre côté vous avez fait des tests avec un pavé numérique externe, n’hésitez pas à partager vos résultats en commentaire ! La marque du pavé numérique, et sur quel système d’exploitation vous avez réussi à faire transformer un point en une virgule.

Utiliser la fonction rechercher-remplacer pour transformer un point en virgule sous Sheets

Le principe consiste à saisir les nombres décimaux au kilomètre, avec le point comme séparateur décimal, sans se soucier du format pris en compte par Sheets (suivant le nombre, le format automatique sera texte ou date).

point et virgule
  • Puis sélectionnez la plage contenant les nombres saisis, et ouvrez la fenêtre « Rechercher et remplacer » avec la combinaison de touches CTRL et H.
rechercher et remplacer
  • Rechercher « . » et remplacer par « , » ;
  • Vérifier que la recherche se passe bien dans « Plage particulière » sélectionnée
  • Cliquer sur “Tout remplacer”

Et voilà, le tour est joué !

rechercher et remplacer

Mais si vous utilisez des formules qui font appel aux cellules dans lesquelles vous saisissez ces nombres, vous avez peut être besoin de voir en direct les calculs ou les graphiques se mettre à jour. Dans ce cas il vous faudra utiliser une autre méthode.

Voir ci-dessous.

Utiliser un script qui transforme instantanément le point en une virgule

Le sujet a déjà été traité par Gilbert Roinel qui donne dans son excellent article le script correspondant.

Je propose ici de détailler l’utilisation de ce script pour permettre à des non initiés de le mettre en place et de l’utiliser.

1. Qu’est ce qu’un script ?

Apps Script est le langage informatique qui permet d’automatiser des actions dans un fichier Google ou même de faire communiquer des applications Google entre elles. Par exemple faire envoyer automatiquement des emails à partir d’un fichier sheets contenant des adresses email. Ce langage est du Javascript.

Dans notre cas, nous avons imaginé un script qui se déclenche dès qu’une saisie est faite dans le fichier Sheets. Si le contenu de la saisie est un nombre, il scrute s’il y a un point. Dans ce cas, le point est remplacé par une virgule.

Le script est une suite d’instructions. Dans notre cas, voici comment cela se présente :

Et bien, si vous collez cette suite d’instructions au bon endroit dans votre fichier, à chaque fois que vous écrirez un point, il sera transformé en virgule.

2. Installer le script

Pour installer ce script, il faut aller dans Outils > Editeur de scripts

ouvrir l'éditeur de script

Un nouvel onglet du navigateur s’ouvre, et il se présente comme ceci :

l'éditeur de script

Dans la partie centrale, vous voyez un onglet nommé Code.gs. Il contient un squelette de script vide.

Remplacez cette ébauche de fonction par le code que vous aurez copié auparavant dans l’article de Gilbert ou bien ci-dessous : 

function onEdit(e) {
  const range = e.range;
  const value = e.value;
  if (isNaN(value)){}else{
    const newValue = value.replace(".", ",");
    range.setValue(newValue);
  }
}

Remplacez “Projet sans titre” par le nom de projet de votre choix (par exemple “Point-Virgule”)

Enregistrez (CTRL+S)

Vous devriez avoir ceci :

résultat attendu

Et voilà, vous pouvez dès maintenant tester le remplacement du point par une virgule en revenant sur l’onglet de votre feuille de calcul.

En résumé, dès qu’un nombre est saisi, s’il contient un point celui-ci est remplacé par une virgule.

Et en détail ci-dessous :

3. Comment ça marche ?

Le nom de la fonction “onEdit” indique que cette fonction sera exécutée à chaque modification dans la feuille de calcul.

Donc, dès que vous saisissez quelque chose dans une cellule, la fonction s’exécute.

Remarque : si vous installez ce script dans une feuille de calcul contenant déjà des nombres décimaux écrits avec un point, ils ne seront pas convertis par la fonction. Pour cela il vous faudra utiliser la fonction Rechercher-remplacer (voir le chapitre correspondant)

Comment ça fonctionne ?

déclaration des variables

La première partie de la fonction, consiste à “déclarer les variables”. En gros, on va dire que l’on identifie :

  • le fichier actif par le nom “ss”
  • puis la feuille active par le nom “Sheet”
  • puis la cellule active par le nom “Rg”
  • puis le contenu de la cellule active par le nom “virg”

Et c’est donc sur “virg” que l’on va travailler

test virgule

On commence par tester : si “virg” n’est pas un nombre ( if (isNaN(virg)) ), alors on ne fait rien ( {} )

Sinon (else), alors on exécute les instructions qui se trouvent entre l’accolade ouvrante { et l’accolade fermante } :

remplacement

Dans “virg”, on cherche si on trouve un “.”. Si c’est le cas, on le remplace par une “,”, et le résultat modifié est écrit dans une nouvelle variable que l’on appelle “res” ( var res = virg.replace(« . », « , ») )

Puis on écrit “res” dans la cellule “Rg” ( Rg.setValue(res) ), ce qui a pour effet de modifier le nombre saisi initialement avec un point.

C’est simple non ?

4. Utiliser ce script dans toutes vos feuilles de calcul

Pour utiliser ce script dans d’autres feuilles de calcul, il faut refaire la manipulation pour chaque feuille de calcul existante.

Pour les nouvelles feuilles de calcul, pour simplifier on peut se créer un fichier Sheets modèle contenant le script, et dont on fera une copie à chaque fois, le script de conversion sera automatiquement intégré dans la copie.

Afin de simplifier l’utilisation, le meilleur moyen serait qu’un Module complémentaire soit créé, ainsi il suffirait d’installer ce module complémentaire sur un fichier sheets et le script serait actif sur tous les fichiers utilisés.

Et si c’était possible de choisir son séparateur décimal …

Et si au lieu de s’embêter avec tous ces contournements pour une fonctionnalité qui existait sur Excel, notre ami Google nous concoctait dans la prochaine version la possibilité de choisir son séparateur décimal ?

Il suffirait que dans les paramètres de la feuille de calcul, sous paramètres régionaux, il y ait un bouton “Personnaliser” derrière lequel se trouverait une magnifique fenêtre permettant de personnaliser le séparateur décimal, séparateur des milliers, symbole décimal etc.

Et vous, comment gérez vous le séparateur décimal ?

S’abonner
Notification pour
guest
16 Commentaires
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires
Joseph D'Andria
Joseph D'Andria

Trilogie efficace et très bien documentée sur un souci récurrent que rencontre les nouveaux arrivants sur G Sheet…
En effet Mr Google, ce serait pourtant simple à corriger!

Cet avis vous a été utile ?

selune
selune

Plus simple (en attendant que Google exauce nos voeux) : Dans fichier > paramètres de la feuille de calcul, il suffit de sélectionner « Suisse » dans les paramètres régionaux, ainsi le point sera utilisé comme séparateur décimal, tandis que le document restera en français (pour l’orthographe), et sur le bon fuseau horaire (GMT+1).

Cet avis vous a été utile ?

Marielle SILBERSTEIN
Marielle SILBERSTEIN
Répondre à  selune
2 années il y a

Bonjour Selune
Vous avez tout à fait raison.
Ce contournement avec ses avantages et inconvénients a été décrit dans la partie 2 de cette trilogie, disponible aussi via le lien en début d’article
Croisons les doigts pour l’évolution de cette fonctionnalité

Cet avis vous a été utile ?

Anthony
Anthony

Bonjour, article très intéressant !
Pourquoi ne pas utiliser une regex pour le remplacement des « . » ?
Cela fait 120 minutes que je bataille sans succès, quelqu’un voit mon erreur ?
function onEdit(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var Sheet = ss.getActiveSheet();
var Rg = Sheet.getActiveCell();
var virg = e.value;
if (/[0-9]+(\.)[0-9]+/g.exec(virg)){
var res = REGEXREPLACE(virg, « [0-9]+(\.)[0-9]+ », « , »);
Rg.setValue(res);
}
}
Merci !

Cet avis vous a été utile ?

Grégory
Grégory

L’astuce consistant à change rles paramètres régionaux semblent être une bonne solution… en optant pour l’Irlande, les points sont reconnus comme séparateur de décimal et les devises restent en euros (à l’instar de la Suisse évoquée dans un précédent commentaire)

Cet avis vous a été utile ?

Grégory
Grégory

Changer les paramètres régionaux de France à Irlande permet à Google Sheets de reconnaitre les points en séparateurs de décimales ET de conserver la devise en Euro (à l’instar de la Suisse proposée dans un précédent commentaire)

Cet avis vous a été utile ?

Gilles Bousquet
Gilles Bousquet

Bonjour,
j’utilisais la méthode consistant à passer en paramètres régionaux « suisse » jusqu’à ce que je tombe sur ce petit logiciel gratuit de reparamétrage de clavier : sharpkeys. Très facile d’utilisation. Quand j’appuie sur la touche . du pavé numérique c’est la virgule qui est envoyé à windows, donc à Google Sheets.
Ca nécessite un reboot. Donc pas facile de revenir rapidement au clavier normal. Mais bon, le . du pavé numérique je ne l’utilise en gros que dans Google sheets.

Cet avis vous a été utile ?

Virginie Frauchiger
Virginie Frauchiger

Bonjour,
Merci pour cet article très bien documenté.
Dans les paramètres de ma feuille de calcul, j’ai mis « Suisse »
Et cela fonctionne très bien sur mon ordi.
Mais pas dans mon app.
Y a-t-il un paramètre directement dans l’app ?
Qui aurait une idée ?
Merci d’avance
Salutations à tous
comiv

Cet avis vous a été utile ?

Virginie Frauchiger
Virginie Frauchiger
Répondre à  Virginie Frauchiger
1 année il y a

Bon, je pense avoir trouvé.
Sur l’iPhone on ne peut pas choisir Français-Suisse. C’est nul.
Donc la langue par défaut est le Français-Français.
Et c’est la virgule qui est prise en compte.
Comme je vais exclusivement utiliser ce fichier sur mon smartphone, je vais garder les paramètres régionaux france-france pour mon fichier.
Belle journée

Cet avis vous a été utile ?

Sylvain
Sylvain

Merci pour ce Script, je déterre un peu le sujet, mais existe-t-il le moyen que le script recherche dans les formules ?

Cet avis vous a été utile ?

Yoan
Yoan

Malheureusement le script ne fonctionne pas/plus actuellement…

Cet avis vous a été utile ?

CASTAYBERT Véronique
CASTAYBERT Véronique

Bonjour, Merci beaucoup pour ce script.
Par contre, je remarque que depuis que je l’ai installé, mes dates se convertissent automatiquement en nombre, malgré que je les saisisse avec le séparateur / et non .
Une astuce qui m’éviterait un changement de format en fin de saisie ?

Cet avis vous a été utile ?

COUPE Laurent
COUPE Laurent

Bonjour,
Je passe en Suisse dans les paramètres régionaux et magique, ça marche !
Le séparateur des milliers se trouve affublé d’un apostrophe ‘ ex : 123’456’789.99€

Cet avis vous a été utile ?

Marielle SILBERSTEIN
Répondre à  COUPE Laurent
4 mois il y a

Tout à fait Laurent.
Le changement des paramètres régionaux pour modifier le séparateur décimal est abordé dans cet article : https://thierryvanoffe.com/le-point-et-la-virgule-avec-google-sheets-partie-2-parametrer-pour-que-le-point-devienne-le-separateur-decimal/

Cet avis vous a été utile ?