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

Article périmé ! Google Sheets a intégré la fonctionnalité très attendue d’écrire une virgule en appuyant sur le « . » du pad numérique. Dans les deux premières parties de cet article, j’évoquais la difficulté engendrée pour […]

4(1)
personnes ont consulté cet article

4 minutes

Rédigé par Marielle Silberstein - il y a 3 ans et modifié le 25/07/2023 à 14:56

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

Article périmé !
Google Sheets a intégré la fonctionnalité très attendue d’écrire une virgule en appuyant sur le « . » du pad numérique.

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.

Image de référence

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 ?

Besoin d'un peu plus d'aide sur Sheets ?

Des formateurs sont disponibles toute l'année pour vous accompagner et optimiser votre utilisation de Sheets, que ce soit pour votre entreprise ou pour vos besoins personnels !

Découvrir nos formations Sheets

Articles similaires

  • Articles connexes
  • Plus de l'auteur
S’abonner
Notification pour

4

Note du cours

(0)

(1)

(0)

(0)

(0)

18 Commentaires
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires
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!

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

Marielle SILBERSTEIN

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é

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 !

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)

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)

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.

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

Virginie Frauchiger

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

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 ?

Yoan

Malheureusement le script ne fonctionne pas/plus actuellement…

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 ?

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€

Marielle SILBERSTEIN

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/

ccciolll
Votre note :
     

Bonjour Marielle,

je n’arrive pas à appliquer la solution 3 et c’est peut-être dû à une évolution de G Sheets entre temps.

Premièrement, dans le déroulant « outils » je n’ai pas le choix script mais uniquement 5 choix : formulaire / orthographe / saisie semie-auto / notification / accessibilité.
J’ai toutefois trouvé dans le déroulant voisin « Extensions » un choix AppsScript qui semble similaire.

Si ce n’est qu’il me met un message d’erreur lorsque je sauvegarde le script
Erreur de syntaxe : SyntaxError: Invalid or unexpected token (ligne : 5, fichier : Code.gs)

Et il me souligne en rouge le contenu entre parenthèse suivant : « . »« , »

Il semblerait que les guillemets Français lui déplaisent.

Jennyfer Delage

Bonjour,

Merci pour cette question pertinente.
Afin d’avoir une réponse rapide, je t’invite à poser cette question sur notre nouveau forum : NUM AGORA.
En effet, cet espace gratuit permet de poser des questions et de profiter de centaines de membres pour y répondre.
À tout de suite sur : https://forum.thierryvanoffe.com/ de préférence dans la bonne rubrique !
Ne pas oublier de mettre le lien de l’article en question et un copier-coller de cette question.

À bientôt,

Jennyfer