You are currently viewing Un exemple d’utilisation de ChatGPT pour la création de code

Un exemple d’utilisation de ChatGPT pour la création de code

J’ai parlé dans l’un de mes derniers articles de cette intelligence artificielle incroyable : ChatGPT.

Aujourd’hui, on va se pencher sur une des utilisations que l’on peut avoir de cet outil : l’aide à la création de code.

Voici un petit cas concret. 

Imaginez que vous ayez un fichier Google Sheets que vous utilisez pour gérer une liste de tâches.

À chaque fois que votre tâche est réalisée, vous cochez une petite case à cocher “FAIT”. Puis vous masquez cette ligne pour ne voir que les tâches en cours…

Et si on mettait en place un petit script pour masquer automatiquement la ligne dès que la case à cocher FAIT est cochée ? Ce serait génial n’est-ce pas ?

Problème, vous ne connaissez rien au code Apps Script… 

C’est ici que nous allons utiliser ChatGPT pour nous aider.

Connectez vous à ChatGPT (chat.openai.com) et tapez tout simplement le prompt suivant : 

Rédige un script Apps Script pour Google Sheets qui masque automatiquement toutes les lignes qui contiennent la valeur TRUE en colonne B à chaque modification de la feuille.

Kitcreanet

Après quelques secondes, voici la réponse de ChatGPT : 

Voici un exemple de script Apps Script pour Google Sheets qui masque automatiquement toutes les lignes qui contiennent la valeur TRUE en colonne B à chaque modification de la feuille :

ChatGPT
function onEdit(e) {
  var sheet = e.source.getActiveSheet();
  var range = sheet.getRange("B:B");
  var values = range.getValues();
  for (var i = 0; i < values.length; i++) {
    if (values[i][0] === true) {
      sheet.hideRows(i+1);
    }
  }
}

Il ne vous reste plus qu’à copier ce script dans votre fichier Google Sheets. Rendez-vous dans Google Sheets puis dans le menu Extensions. Cliquez sur Apps Script.

Le Module Apps Scrip de Coogle Sheets

Puis collez le code fourni par ChatGPT dans la zone de code : 

Le code pour masquer automatiquement une ligne qui contient True en colonne B.

De retour dans votre feuille, si vous cochez une case dans la colonne B, la ligne disparaît immédiatement.

La démonstration : ça fonctionne, le script Apps Script est parfaitement fonctionnel.

Mais, allons un peu plus loin. 

Plutôt que de masquer les tâches réalisées, pourrions-nous déplacer ces lignes dans un autre onglet ? Ok, demandons à ChatGPT : 

Modifie le script pour déplacer automatiquement la ligne qui contient la valeur TRUE en colonne B dans la première ligne vide de l’onglet ARCHIVES.

Kitcreanet

La réponse de ChatGPT ne se fait pas attendre, la réponse s’appuie sur les réponses précédentes et ChatGPT propose donc la nouvelle version de script suivante  : 

Voici une version modifiée du script précédent qui déplacera automatiquement la ligne qui contient la valeur TRUE en colonne B dans la première ligne vide de l’onglet « ARCHIVES » à chaque modification de la feuille :

Chat GPT
function onEdit(e) {
  var sheet = e.source.getActiveSheet();
  var range = sheet.getRange("B:B");
  var values = range.getValues();
  var archiveSheet = e.source.getSheetByName("ARCHIVES");
  var lastRow = archiveSheet.getLastRow();
  
  for (var i = 0; i < values.length; i++) {
    if (values[i][0] === true) {
      var rowToMove = sheet.getRange(i+1, 1, 1, sheet.getLastColumn());
      rowToMove.copyTo(archiveSheet.getRange(lastRow+1, 1));
      sheet.deleteRow(i+1);
    }
  }
}

Ce code fonctionne immédiatement.

À chaque modification dans la feuille, le script vérifie s’ il y a une case cochée dans la colonne B. Si c’est le cas, la ligne entière est déplacée dans l’onglet ARCHIVES, à la première ligne vide.

Allez, on va demander une nouvelle itération à ChatGPT.

Peux tu modifier ce code pour qu’il ne s’exécute que sur l’onglet nommé TODO :

Kitcreanet
function onEdit(e) {
  var sheet = e.source.getActiveSheet();
  if(sheet.getName() !== 'TODO'){
    return;
  }
  var range = sheet.getRange("B:B");
  var values = range.getValues();
  var archiveSheet = e.source.getSheetByName("ARCHIVES");
  var lastRow = archiveSheet.getLastRow();
  
  for (var i = 0; i < values.length; i++) {
    if (values[i][0] === true) {
      var rowToMove = sheet.getRange(i+1, 1, 1, sheet.getLastColumn());
      rowToMove.copyTo(archiveSheet.getRange(lastRow+1, 1));
      sheet.deleteRow(i+1);
    }
  }
}

Non content de me donner sa réponse, ChatGPT prend le temps de m’expliquer ce qu’il vient de faire et comment il a corrigé mon code :

J’ai ajouté une condition pour vérifier si la feuille active n’est pas « TODO ». Si c’est le cas, alors la fonction s’arrêtera sans rien faire.

ChatGPT

Voila, un peu de temps gagné et un petit outil bien pratique créé en quelques minutes avec ChatGPT.

Laisser un commentaire