coder dans Google Sheets

Apprenez à coder dans Google Sheets, pour les programmeurs | Pour les utilisateurs avancés de Google Sheet

 

Si vous savez coder, vous apprendrez dans ce tutoriel étape par étape comment coder dans Google Sheets

Hé, les pirates !

J’ai quelque chose de fou pour toi… voudrais-tu passer les cinq prochaines minutes, avec moi, et apprendre un nouveau langage de programmation ?

Pourquoi si vite? Parce que vous savez déjà coder. Ce didacticiel vous expliquera comment coder dans Google Sheets. Où coder et quoi utiliser pour coder.

Permettez-moi de prendre un moment pour demander. Est-ce que vous codez ?

Je veux m’assurer que tu es au bon niveau.

Si vous ne savez pas du tout coder, je vous propose de commencer par mon cours  » Apprendre à coder dans Google Sheets « . 6 vidéos qui vous font passer de l’ignorance au codage littéral à l’intérieur de Google Sheets. Le cours est accessible à tous à vie

Programmeurs, codeurs, hackers, si vous connaissez les termes suivants, vous tirerez beaucoup de ce rapide tutoriel. Ce que je vous montre dans ce tutoriel n’est pas comment programmer, ni comment coder. Je ne t’apprends pas à être un hacker. Je vous montre comment pirater Google Sheets. Utilisez vos compétences en programmation dans une feuille de calcul Google.

  1. Les fonctions
  2. variables
  3. Javascript
  4. Pour les boucles
  5. Enregistrement
  6. Débogage
  7. JSON
  8. API

Pourquoi apprendre Google Script dans Google Sheets ?

Apprendre spécifiquement à coder dans Google Sheets vous aidera à créer vos propres outils. Vous aidera à créer des tableaux de bord pour votre startup avec des données provenant d’éléments tels que Profitwell, Stripe, etc. Vous pouvez déplacer les données de votre CRM dans des feuilles et programmer des méthodes pour manipuler ces données. Peut-être que vous voulez essayer une vente incitative. Vous pouvez conserver vos données dans une feuille et les tester plus rapidement que d’avoir à créer une nouvelle fonctionnalité dans votre base de données utilisateur. Vous pouvez faire beaucoup plus d’expérimentations dans les feuilles car vous pouvez voir la base de données et la modifier directement.

En plus d’utiliser Apps Script pour automatiser les processus métier. Votre équipe non technique peut connaître Google Sheets et non javascript. Vous pouvez donc écrire de petits bouts de code qu’ils pourront utiliser à volonté. Et ils sont à l’aise avec les feuilles de calcul et plus particulièrement Google Sheets.

Apprenons à coder dans Google Sheets, pour les programmeurs.

Vous connaissez la programmation et je connais Google Sheets. Ouais, soyons fous !

Remarque : Vous pouvez accéder à tout le code dans un document Google ici sur BetterSheets.co/hackers. Vous pouvez obtenir directement ce document et obtenir tout le code.

Vous pouvez également regarder une vidéo YouTube qui montre chaque étape de ce blog.

Mais tu veux lire. Alors continuez à lire !

Suivez les étapes ci-dessous et vous coderez dans Google Sheets en un rien de temps.

  1. Accédez à feuille.nouveau. Une fois que la feuille commence à se charger, accédez à l’extension appelée App Script . Chaque feuille de calcul Google y a accès. Maintenant, chaque fonction ressemble à ceci :

fonction nom_fonction( ) { }

Vous pouvez ajouter entre parenthèses toutes sortes de noms de variables que vous souhaitez ajouter, puis utiliser ces variables et exécuter du code à l’intérieur de cette accolade.

Les variables utilisent var variableName = ; Vous pouvez utiliser le point-virgule de la même manière que vous l’utiliseriez en Javascript si vous souhaitez conserver ce style. Il n’est cependant pas nécessaire de l’utiliser.

  1. Créons maintenant une fonction et appelons-la costperMille ou CPM, qui est un problème mathématique très courant en marketing. Nous voulons connaître notre CPM et nous allons écrire cette fonction directement dans Google Script.
function cpm( cost , count ) {
var mille = count / 1000 ;
var cpm = cost / mille ;
return cpm
}

Notre fonction a deux variables : cost et count . À l’intérieur de la fonction, nous avons notre variable mille . Nous obtenons ce nombre en tapant « return cpm ». (Vu dans la partie inférieure du code ci-dessus.)

N’oubliez pas de le sauvegarder. Astuce : Lorsque vous voyez un point orange sur la barre latérale gauche, celle où il est écrit Code.gs , cela signifie que vous n’avez pas enregistré votre travail.

  1. Nous pouvons maintenant utiliser cette fonction dans Google Sheets. Vous pouvez soit taper les chiffres, soit utiliser les numéros de cellule comme référence. Dans ce cas, ils seraient C2 pour 450 et C3 pour 3000.

Continuons. Exploitons la puissance infinie de Google Sheets ! C’est comme une base de données à laquelle nous pouvons accéder directement, back-end, front-end – tout cela est identique. Pas besoin d’apprendre le HTML, juste Javascript. Nous codons pour pouvoir accéder à une valeur à l’intérieur d’une feuille de calcul Google.

  1. Dans la cellule A1, inscrivons le montant des ventes que nous avons. Rappelez-vous, nous sommes sur la première feuille. C’est compris? D’accord, nous allons maintenant accéder à Google Script et entrer plus de codes.

 

Nous pouvons changer le nom de la fonction. Ensuite, vous aurez besoin de la parenthèse et des accolades. À l’intérieur de ces accolades, nous allons taper var cellData . Encore une fois, nous pouvons nommer cette variable comme nous le voulons. Nous utilisons l’application Spreadsheet et elle sera indiquée en rose.

  1. Ensuite, entrez un point après SpreadSheetApp , puis tapez getActive . Il y aura une liste de suggestions lorsque vous tapez cela. Nous voulons getActiveSpreadsheet et voici une astuce : ajoutez une parenthèse après cela.
  2. Ensuite, nous suivons cela avec .getSheetByName et encore une fois, ajoutons des parenthèses. Entre parenthèses, entre guillemets, tapez Sheet1 afin que nous puissions passer au morceau de code suivant.
  3. Tapez maintenant .getRange , puis nous allons de la feuille de calcul entière à la feuille de calcul active jusqu’au nom de la feuille. Nous descendons dans la hiérarchie pour cela. Ensuite, nous obtiendrons la plage de cette feuille ou de la cellule.
  4. Une fois que nous avons la plage A1 , nous tapons getValue(); et nous pouvons terminer cela par un point-virgule si nous le voulons.
  5. Maintenant, nous avons tout cela – la hiérarchie jusqu’à la cellule exacte. Maintenant, nous voulons A1 et nous le renverrons. Tapez return cellData puis assurez-vous de l’enregistrer.

Vous trouverez ci-dessous le code que vous saisirez.

function getDataFromA1onSheet1() {
var cellData = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“Sheet1”).getRange(“A1”).getValue();
return cellData
}
  1. De retour dans Google Sheets, nous pouvons avoir A1 n’importe où. Copiez l’intégralité du code getDataFromA1onSheet1 , puis ajoutez la parenthèse. Pour ce tutoriel, nous allons coller ce code dans E6. Exécutez simplement ce code et vous obtiendrez le numéro 50, où il a obtenu les données de A1 . N’est-ce pas cool?

Toutes les données de cette feuille de calcul auxquelles nous pouvons accéder par sa plage, par son nom de feuille, par sa hiérarchie. Une feuille, une feuille de calcul active, le nom de la feuille et la plage dans laquelle elle se trouve. Si vous souhaitez copier à nouveau ce script spécifique, accédez à BetterSheets.co/hackers et vous pourrez obtenir ce document Google exactement pour vous-même. Copiez-le, utilisez-le. Copiez ce code, essayez-le par vous-même.

En utilisant les mêmes données, mais sur une page de vente cette fois.

N’était-ce pas cool ? Essayons maintenant autre chose. En utilisant les données dont nous disposons, appliquons-les à une page de vente, où nous voulons les copier dans un journal. Copiez tout ce code et ajoutez-le au code existant que nous avons.

function copySalesDataToSalesLog() {
// Get data from sheet Sales Summary "what you want to copy"
// Get sheet & range of Sales Log "where you want to copy it to"
// Insert a row above the top row
// get range to write timestamp
// write timestamp new Date()
// copy data
}

Maintenant que fait ce code ? Rien. Pourquoi cela ne fera rien ? C’est parce que nous l’avons commenté. Ainsi, dans Google Script, nous pouvons faire deux barres obliques devant n’importe quel texte que nous voulons. C’est commenter. Il ne fonctionnera pas réellement, comme dans n’importe quel autre langage de programmation. Avec le code ci-dessus, nous avons écrit en mots ce que nous voulons faire.


Créer des feuilles : « Récapitulatif des ventes » et « Journal des ventes »

Nous voulons obtenir des données à partir de la feuille de résumé des ventes. Nous avons donc besoin d’une feuille appelée Sales Summary et nous voulons la copier dans une feuille appelée Sheet Log .

Ce que nous faisons, c’est d’obtenir un montant des ventes. Nous voulons le modifier activement tous les jours, mais nous voulons le copier dans ce journal. Nous faisons cela pour qu’il soit horodaté et qu’il ait un journal chronologique inversé de toutes les ventes de chaque jour.

Voici maintenant ce que nous allons faire :

  1. Obtenez les données de la feuille de résumé des ventes, ce que nous voulons copier.
  2. Obtenez la feuille et la plage du journal des ventes où nous voulons le copier.
  3. Insérez une ligne au-dessus de la ligne du haut, juste au cas où il n’y aurait plus de lignes.
  4. Obtenez la plage et écrivez un horodatage.
  5. L’horodatage que nous utiliserons est new Date()
  6. Copiez les données.
function copySalesDataToSalesLog() {
  // get data from sheet Sales Summary "what you want to copy"
  var data = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sales Summary").getRange("A1")
 
  // get sheet Sales Log "where you want to copy it to"
 
  var destinationSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sales Log")
  var destinationRange = destinationSheet.getRange(1,1,1,1)
 
   // insert row above the top row
   destinationSheet.insertRowBefore(1)
 
   // get range to write timestamp
   var timestampRange = destinationSheet.getRange(1,2,1,1)
 
   // write timestamp
   var timestamp = new Date()
 
   timestampRange.setValue(timestamp)
  //copy data
   data.copyTo(destinationRange,{contentsOnly:true})
 
  //By default, values ​​and formatting are copied, but you can override them using advanced arguments.
}

Parcourons le code que j’ai écrit:

  1. Nous avons la fonction copySalesDataToSalesLog(), nos données variables comme nous le faisions auparavant. Nous obtenons la plage du nom de la page et A1 .
  2. Obtenez la plage dans laquelle nous voulons aller, puis insérez une ligne, littéralement juste la destinationSheet.insertRowBefore()
  3. Insérez le numéro un, il ressemble maintenant à ceci : destinationSheet.insertRowBefore(1)
  4. Ensuite, nous avons la plage de l’horodatage. L’horodatage est littéralement la nouvelle date, comme ceci : new Date()
  5. Définissez cette date comme valeur, horodatage, de sorte qu’elle devrait ressembler à ceci : timestampRange.setValue(timestamp)
  6. Ensuite, nous allons le copier dans la feuille de destination. Par défaut, les valeurs de formatage sont copiées, mais nous pouvons les remplacer ici avec contentsOnly:true

Nous ne faisons que copier le contenu. C’est la clé parce que parfois nous ne voulons pas copier ce formatage, nous allons donc appuyer sur la commande s et.

  1. Maintenant, appuyez sur la commande S et enregistrez.

Maintenant, nous devons autoriser afin d’exécuter ce code :

  1. Cliquez sur le menu déroulant sur la ligne en haut de la page, où il est écrit « cpm » , et vous verrez d’autres options parmi lesquelles choisir. Choisissez copySalesDataToSalesLog puis appuyez sur Exécuter .
  1. Vous obtiendrez la fenêtre contextuelle Autorisation requise .

Nous n’avons à le faire qu’une seule fois lorsque nous exécutons le code pour la première fois lorsque nous avons de nouvelles portées. Parfois, il faut toujours le tester.

  1. Exécutez vos données de vente et c’est parti ! Nous avons maintenant un horodatage et un montant de vente.

Que se passe-t-il si quelque chose ne fonctionne pas et que nous ne voyons pas réellement notre réponse ?

Ajoutez ce morceau de code à la fin : Logger.log(data.getValue()

C’est idéal pour le débogage. Maintenant, appuyez sur Exécuter et nous avons le 50 juste là.

Cela nous permet donc de consigner des petits points à déboguer en cours de route. Vraiment, vraiment cool à l’intérieur de cet IDE, non ?

Exécuter des tâches cron

Nous sommes des hackers parce que nous sommes paresseux. Nous ne voulons pas cliquer sur un bouton tous les jours. Alors mettons cela en place !

Reportez-vous pour cela au code suivant : function copySalesDataToSalesLog()

  1. Sur le côté gauche de la page, nous avons ce bouton de minuterie qui dit  » déclencheurs ». Nous allons cliquer sur « déclencher ».
  1. En bas à droite, cliquez sur le bouton bleu qui dit « Ajouter un déclencheur ».
  1. Un modal apparaîtra et vous devrez apporter les modifications suivantes :
  2. Dans le premier champ où il est écrit « Choisir la fonction à exécuter » , sélectionnez CopySalesDataToSalesLog .
  3. Le deuxième champ où il est écrit « Choisir le déploiement à exécuter » ne peut pas être modifié, alors gardez-le tel quel.
  4. Dans le troisième champ où il est écrit « Sélectionner la source de l’événement » , nous allons le changer en Time-driven.
  5. Vient ensuite le champ qui indique « Sélectionner le type de déclencheur basé sur le temps ». Sélectionnez Minuterie journalière . Une fois que nous avons fait cela, nous avons un déclencheur basé sur le temps, nous pouvons donc le faire tous les jours.
  6. Le dernier champ qui dit « Sélectionner l’heure de la journée » est l’endroit où nous pouvons sélectionner le montant, la période de la journée que nous voulons exécuter. Dans Google Sheets, vous ne pouvez pas définir d’heure exacte spécifique, mais vous pouvez définir une heure de la journée à exécuter. Pour cette visite guidée, réglons-le sur « 9h à 10h ».
  7. Nous avons maintenant un déclencheur qui s’exécutera tous les jours entre 9h00 et 10h00.

Ce déclencheur que nous avons créé va faire exactement ce que nous faisions auparavant :

 

Remarque : Encore une fois, si je vais trop vite dans cette vidéo, vous pouvez aller sur BetterSheets.co/hackers. Tout cela est dans Google Docs.

Mais attendez! Il y a plus.

Thibault m’a demandé – Oui ! Le même Thibault qui a créé Tweet Hunter m’a demandé : « Comment pouvons-nous accéder à une API via Google Script ? Pour cet exemple, utilisons omdbapi.com et obtenons votre propre clé API. Suivez ensuite les étapes ci-dessous :

  1. Créez une nouvelle feuille appelée API Key . Il peut s’asseoir juste à côté de la feuille du journal des ventes .
  2. Placez votre clé API sur A1 .
  3. Obtenez le JSON. La principale information, la plus grande information que vous devez connaître est UrlFetchApp.fetch
  4. Revenez à notre éditeur de code. Si nous ne voulons pas continuer à écrire de nouveaux scripts sur ce sur quoi nous travaillions, nous pouvons toujours ajouter un nouveau script. Cliquez sur l’icône plus en haut et choisissez « Script » dans les options déroulantes. Ensuite, appelez-le « API ».
  1. Collez le code JSON. Cela signifie obtenir notre clé API, mais c’est exactement le même code que nous avions auparavant, qui est SpreadsheetApp.getActiveSpreadsheet().getSheetByName(« apikey »).getRange(« A1 »).getValue();

C’est exactement pareil. Nous accédons à ces informations à partir de la feuille de calcul.

  1. Nous avons maintenant l’URL de omdbapi.com . Vous pouvez ajouter l’URL, la clé API et le titre que vous souhaitez récupérer.
  2. Pour obtenir la valeur de getJSON(title) et ce que cela fait, c’est qu’il récupère la clé API de A1 . Créez un nouvel onglet appelé Films . Tapez =JSON(A1) sur B2. Assurez-vous d’entrer un titre de film dans A1 afin de ne pas recevoir d’erreur lorsque vous exécutez le code.
  3. Vous pouvez maintenant voir toutes les informations sur le film que vous avez choisi (c’est-à-dire « Hackers ») dans B2.

C’est encore mieux. Un mot : Affiche.

Oui, nous pouvons réellement obtenir l’affiche ! Alors voici la fonction :

function getPoster(title){
var data = JSON.stringify(getJSON(title))
var language = data.split("Poster")
var plot = language[1].split("Ratings")
var poster = plot[0].split('https')
var poster2 = poster[1].split('jpg')
return "https" + poster2[0] + "jpg"
}

Encore une fois, vous pouvez lire ceci à l’intérieur de BetterSheets.co/hackers

  1. Dans le tableur (toujours dans l’ onglet Films ), on va changer des choses. Au lieu des données actuelles, nous allons utiliser =getPoster(A1).
  2. Dans ce même code, nous voulons mettre ceci autour de la fonction image. Ceci est une image de formule Google Sheets. Il prend une URL et affiche ensuite une image. Votre code devrait maintenant ressembler à ceci : =image(getPoster(A1))

Nous pouvons changer le titre (A1) en tout ce que nous voulons et nous pouvons obtenir l’affiche du film. Nous pouvons obtenir n’importe quelle affiche avec cette API dans Google.

Et maintenant, nous connaissons Google Scripts. N’est-ce pas cool? Si vous souhaitez suivre le code et le récupérer à nouveau, rendez-vous sur BetterSheets.co/hackers .

Allez le chercher, allez l’utiliser, apprenez à programmer dans Google Sheets.

Et regardez toute la vidéo youtube :

 

 

Retour en haut