Reset données cellules

Bonjour,

j'espère que vous allez bien.

j'avais déjà ouvert un post une fois pour un sujet similaire mais en mode créer un bouton, mais j'ai eu des problèmes et je ne voulais pas être ennuyant donc je suis passé a autre chose et je vous remercie grandement pour ceux qui avaient participer a m'aider.

je sais que le sujet a été demandé plein de fois, mais après avoir lu certain sujet je n'arrive pas a comprendre comment mon script doit fonctionner, je m'excuse a l'avance si cela peut être ennuyant de peut être répondre constamment au même type de question.

je m'explique, j'ai ma feuille de stock se nommant Daily Stock, j'ai ensuite plusieurs onglets, je voudrais reset le contenu des cellules E3 jusqu'à K50 de tous mes onglets, pour le moment je me concentre déjà sur un onglet, la feuille se nommant Menus

j'ai copier coller des bouts de code en pensant que cela devrait être correct, je ne comprend pas trop tout ce que cela veut dire, je fais de mon mieux pour faire les choses de moi meme mais cela fait déjà 2h que je suis dessus pour 10 lignes de code

function onOpen() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Menus");
  if (sheet) {
    var ui = SpreadsheetApp.getUi();
    var menu = ui.createMenu('Réinitialiser');
    menu.addItem('Réinitialiser les données', 'resetData');
    menu.addToUi().setPosition(SpreadsheetApp.Position.MENU);
  } else {
    Logger.log("La feuille 'Menus' n'a pas été trouvée.");
  }
}

function resetData() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Menus");
  if (sheet) {
    var range = sheet.getRange("E3:K50");
    range.clearContent();
    range.setBackground("#ffffff"); // Remplacer "#ffffff" par la couleur de fond souhaitée
  } else {
    Logger.log("La feuille 'Menus' n'a pas été trouvée.");
  }
}

j'ai essayé avec un bout de code de mon ancien script, mais je n'ai toujours pas de menu réinitialisé qui apparait

function onOpen() {
  var feuilleMenus = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Menus');

  // Créer un menu dans la feuille "Menus"
  var menu = SpreadsheetApp.getUi().createMenu('Réinitialiser');
  menu.addItem('Réinitialiser les données', 'resetData');

  // Ajouter le menu en A1
  var celluleMenu = feuilleMenus.getRange('A1');
  menu.addToUi().setPosition(celluleMenu, SpreadsheetApp.Position.MENU);
}

function resetData() {
  var feuilleMenus = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Menus');
  feuilleMenus.getRange('E3:K50').clearContent();
}

Bonjour,

Voici un script répondant à ce besoin, j'ai ajouté excludedSheets si jamais il y a des feuilles à exclure et rangeToDelete est modifiable, si demain votre range devient E4:K51 vous pouvez aisément modifier :

function clearRange() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var excludedSheets = ["Feuille 1","paramétrage"]; // à modifier !
  var rangeToDelete : "E3:K50";
  var sheets = spreadsheet.getSheets();
  for (var i = 0; i < sheets.length; i++) {
    var sheet = sheets[i];
    if (excludedSheets.indexOf(sheet.getName()) === -1) {
      var range = sheet.getRange(rangeToDelete);
      range.clearContent();
    }
  }
}

Maintenant pour ajouter un menu personnalisé :

function onOpen() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var menu = SpreadsheetApp.getUi().createMenu("Menu personnalisé"); // vous pouvez changer le nom
  menu.addItem("Vider Plage", "clearRange"); // Nom de l'élément du menu, et nom de la fonction à appeler
  menu.addToUi();
}

Merci Pierre

voici le code que j'ai coller, mais rien ne s'affiche a l'écran, est ce qu'il y a des autorisations a donner? a quoi devrais ressembler le menu créer?

on est d'accord que ce menu est sensé se mettre seul en A1 ?

function clearRange() {
  var ss = SpreadsheetApp.getActiveSpreadsheet("Menus");
  var excludedSheets = ["DailyStock","paramétrage"]; // à modifier !
  var rangeToDelete = "E3:K50";
  var sheets = spreadsheet.getSheets();
  for (var i = 0; i < sheets.length; i++) {
    var sheet = sheets[i];
    if (excludedSheets.indexOf(sheet.getName()) === -1) {
      var range = sheet.getRange(rangeToDelete);
      range.clearContent();
    }
  }
}
capture d ecran 38

je pense avoir compris quelque chose, ce menu que je souhaite avoir va se retrouver dans la barre de menu comme fichier, edition, affichage ect..., moi je pensais que ca serait dans une cellule car je met en place cet outil de travail mais les employés vont utilisé une tablette pour effectuer les stock et sur tablette ce menu ne peut pas s'afficher, c'est comme la création d'un bouton reset, j'ai déjà tester les boutons et c'est vraiment super, mais les boutons fonctionnent que sur ordinateur malheureusement, est ce que j'ai bien compris ?

est ce qu'il n'y aurait une méthode pour delete le contenu des cellules sans devoir sélectionner avec le doigt et effacer le contenu manuellement?

Bonjour,

Créez un bouton (voici un site qui permet d'en générer si besoin : https://www.clickminded.com/button-generator/)

Ensuite insérez une image SUR les cellules, insérez votre bouton et placez le ou vous voulez sur votre page

En faut à droite du bouton cliquez sur les 3 petits points et faites "Attribuer un script" là, écrivez : clearRange et validez.

super ce site, merci beaucoup Pierre, vous êtes incroyable.

pouvez vous me confirmer que cela ne fonctionne pas sur l'application mobile google Sheets?

je trouve cela vraiment dommage

Bonjour,

En effet, sur mobile c'est compliqué, ou alors il faut aller dans les parametres : afficher la version ordinateur

Rechercher des sujets similaires à "reset donnees"