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

908 1

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 (https://thierryvanoffe.com/le-point-et-la-virgule-avec-google-sheets-partie-1-se-premunir-des-erreurs-de-saisie/)

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 (https://thierryvanoffe.com/le-point-et-la-virgule-avec-google-sheets-partie-2-parametrer-pour-que-le-point-devienne-le-separateur-decimal/)

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

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 Chromebook, 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

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).

Puis sélectionner la plage contenant les nombres saisis, et ouvrir la fenêtre Rechercher et remplacer avec la combinaison de touches CTRL et H

Rechercher . et remplacer par ,

Vérifier que la recherche se passe bien dans la Plage particulière sélectionnée

Cliquer sur “Tout remplacer”

Et voilà, le tour est joué !

Mais si vous avez 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 (https://thierryvanoffe.com/script-remplacer-le-point-decimal-par-une-virgule/) 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

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

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) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var Sheet = ss.getActiveSheet();
  var Rg = Sheet.getActiveCell();
  var virg = e.value;
  if (isNaN(virg)){} 
  else{
    var res = virg.replace(".", ",");
    Rg.setValue(res);
  }
}

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

Enregistrez (CTRL+S)

Vous devriez avoir ceci :

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 ?

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

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 } :

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 …

Cher ami Google, si tu tombes par hasard sur cet article,
merci d’exaucer mon voeux !!!!!

Si vous avez trouvé une faute d’orthographe, veuillez nous en informer en sélectionnant le texte en question et en appuyant sur Ctrl + Entrée .

Marielle SILBERSTEIN

Marielle SILBERSTEIN

Formatrice sur les outils numériques depuis 1998 et utilisatrice de la Suite Google depuis 2009, je suis adepte du travail collaboratif et pédagogue. J’ai à coeur d’accompagner les utilisateurs à appréhender et utiliser tout le potentiel de la suite Google et à gagner en efficacité. Ma longue expérience du support technique sur logiciels métier me permet d’avoir une compréhension aisée et globale du besoin utilisateur en milieu professionnel comme personnel.

1 commentaire

  1. Avatar

    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!

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

TÉLÉTRAVAIL : 14h de formation offertes sur Gsuite

🔴 Chaque jour en live à 14h 🔴

Rapport de faute d’orthographe

Le texte suivant sera envoyé à nos rédacteurs :