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 […]
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).
- 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 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é !
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
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) { 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 :
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.
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 connexes
- Plus de l'auteur
4
Note du cours
(0)
(1)
(0)
(0)
(0)
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!
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).
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é
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 !
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)
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)
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.
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
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
Merci pour ce Script, je déterre un peu le sujet, mais existe-t-il le moyen que le script recherche dans les formules ?
Malheureusement le script ne fonctionne pas/plus actuellement…
Bonjour Yoan
De mon côté le script fonctionne
Pouvez vous décrire ce qu’il se passe pour vous ?
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 ?
Bonjour Véronique
Effectivement, ce script vérifie si ce qui est saisi est un nombre ou pas, mais une date est un nombre et donc il effectue le replace même si c’est une date. Et curieusement ce replace modifie le format d’affichage de la date, même si aucun remplacement n’a lieu, puisqu’il n’y a pas de . dans la date saisie.
Je vais voir si un contournement est possible
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€
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/
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.
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