Script - Supprimer ligne selon id et si checkbox faux

Bonjour La communauté,

J'aurais besoin de votre aide pour développer un script.

Mon sheet permet que mes collègues me demande de commander des fournitures, via un formulaire qui se trouve dans l'onglet "Form".

screenshot 20211212 075047 sheets

Une fois saisi, ils appuient sur un bouton qui déclenche un script qui créait en dernière ligne du tableau se trouvant dans l'onglet "Data".

lors de la création de cette ligne, le demandeur et moi sommes averti de cette nouveau besoin de commande, avec l'id du besoin en objet du message.

Lorsque j'ai traité ce nouveau besoin de mon collègue, je ticke la checkbok sur vrai.

Ce script fonctionne très bien.

screenshot 20211212 075112 sheets

Je voudrais, que vous m'aidiez à développer un script pour que mes collègues aient la possibilité de supprimer la demande qu'ils m'ont faites au préalable.

Pour cela, il faudrait que le script lise l'Id de la demande en case c2 de l'onglet form, trouve la ligne correspondant à l'Id à supprimer dans la table de l'onglet data, uniquement si la case en colonne I est sur faux.

Si j'ai déjà tické la case checkbox, alors la ligne n'est pas supprimée et un popup apparaît à l'utilisateur durant quelques secondes en lui disant que sa demande ne peu être supprimer car déjà commandée. Veuillez contacter votre administrateur.

voici le fichier,qui ne contient pas de script

https://docs.google.com/spreadsheets/d/1oKkRHv14nmmkFayV2Kixmha9SLWNrXAfrnBCBn7c4U0/edit?usp=drivesd...

Je vous remercie énormément de votre aide.

Vincent

Bonjour,

je te laisse intégrer à ton projet, n'ayant pas le reste de la macro ...

function supprimer() {
  var doc = SpreadsheetApp.getActiveSpreadsheet()
  var id = doc.getSheetByName('Form').getRange('C2').getValue()
  var data = doc.getSheetByName('Data')
  var derLigne = getLastDataRow(data)
  var ids = data.getRange('A2:A'+derLigne).getValues().join().split(',')
  var ligne = ids.indexOf(id.toString())
  if (ligne != -1){
    if (data.getRange('I'+(ligne+2)).getValue()){
      Browser.msgBox('Suppression impossible !')
    }
    else{
      data.deleteRow(ligne+2)
      Browser.msgBox('Suppression effectuée !')
    }
  }
  else{
    Browser.msgBox('id "'+id+'" non trouvé !')
  }
}
function getLastDataRow(sheet) {
  var lastRow = sheet.getLastRow();
  var range = sheet.getRange("A" + lastRow);
  if (range.getValue() !== "") {
    return lastRow;
  } else {
    return range.getNextDataCell(SpreadsheetApp.Direction.UP).getRow();
  }              
}

Merci beaucoup ton efficacité et ta rapidité. Le script fonctionne très bien.

Ton aide va beaucoup m'aider.

Bon WE

Rechercher des sujets similaires à "script supprimer ligne checkbox faux"