J'essaie de créer une feuille de calcul Google Sheets automatisée dans laquelle je peux saisir la date, l'heure de début, l'heure du déjeuner, l'heure de fin, le nombre d'heures travaillées par jour et enfin résumer le nombre d'heures travaillées pendant un mois. . Créer un horaire de travail dans Google Spreadsheet n'est pas trop difficile, mais j'aimerais apporter certaines améliorations. La première est que même si la feuille de calcul calcule correctement le nombre d'heures travaillées pour la journée, elle affiche le total sous forme d'heure, par exemple 20h22, plutôt que 8 heures et 22 minutes. Une autre chose est que ce format m'oblige à écrire les heures au format heure, ce qui est fastidieux. Je veux pouvoir saisir 3 ou 4 nombres dans une cellule et les convertir en heure.
J'ai appris que le seul moyen d'y parvenir était d'utiliser Google Apps Script. J'ai donc suivi le seul tutoriel que j'ai trouvé, mais le code ne fonctionnait pas du tout. L'outil de script utilise JavaScript, que je connais assez bien car je l'utilise quotidiennement dans les expressions After Effects, mais je ne suis pas un expert. Si quelqu'un pouvait m'aider avec ce projet moins difficile, je lui en serais très reconnaissant. Bien sûr, si quelqu’un a une meilleure alternative à ce que je fais, je suis totalement ouvert à la réorienter. Merci beaucoup. Je vais coller le code que j'ai créé sur la base du didacticiel, puis un lien vers le didacticiel lui-même.
var COLUMN_TO_CHECK = 3; var SHEET_NAME = "Feuil1"; fonction onEdit(e){ var ss = SpreadsheetApp.getActiveSpreadsheet(); var feuille = ss.getActiveSheet(); if(sheet.getName() === SHEET_NAME){ var selectedCell = sheet.getActiveCell(); selectedCell.setNumberFormat("@"); if(selectedCell.getColumn() === COLUMN_TO_CHECK){ var cellValue = selectedCell.getValue(); var time = cellValue.substr(0,2)+":"+cellValue.substr(cellValue.lenght - 2); selectedCell.setValue(heure); selectedCell.setNumberFormat("hh:mm"); } } }J'ai rencontré une erreur à la ligne 7 : var sheet = ss.getActiveSheet();. Le débogueur appelle la variable ss
Un problème que j'ai remarqué avec le didacticiel est qu'il présente des incohérences entre le code présenté et le code étape par étape, et qu'ils ignorent également certaines lignes de code. C'est peut-être pour cela que mon code ne fonctionne pas. Lorsque j'ai suivi le didacticiel, cela m'a conduit à une impasse où j'ai essayé de copier exactement le code présenté.
https://yagisanatode.com/2018/06/02/google-apps-script-how-to-automatically-generate-a-time-from-a-four-digit-24-hour-time- dans -google-sheets/
Je suis l'auteur de l'article que vous citez ici. Je n'utilise pas StackOverflow assez souvent pour l'ajouter dans les commentaires, je pense que la préférence ici est de le faire.
Veuillez noter que
ss
变量引用的是活动电子表格。这是与脚本绑定的电子表格。因为我们使用了onEdit()
déclencheurs, ce script doit donc être lié à Google Sheets. D'après votre question, je ne sais pas si vous l'avez déjà fait, mais voici les instructions pour y parvenir : Dans votre menu Google Sheets, accédez à >Extensions>Apps Script.Ici, collez le code et enregistrez le projet. Assurez-vous que le nom de votre feuille (le nom dans l'onglet) est le même que le nom de la feuille que vous souhaitez modifier et mettre à jour, et mettez à jour la variable
SHEET_NAME
en conséquence.Cela devrait résoudre l'erreur que vous rencontrez.
Remarque - La répartition du code sous le code principal sert uniquement à mettre en évidence certaines parties importantes du code et ne constitue pas un guide étape par étape. J'ai mis à jour le message dans cet esprit et j'apprécie vos commentaires.
Je m'excuse si j'ai mal compris votre question.
Tanaike - Si vous pensez que cela est plus approprié, n'hésitez pas à supprimer cette réponse ou à la fusionner dans un commentaire au lieu de la publier ici.