Recherche code type supprimer / ajouter menu

Bonjour

je recherche une bonne âme qui a déjà un code GAS

pour ajouter et supprimer un menu

en effet lorsque je lance une fonction une page s 'active et mon menu apparait pas de souci

par contre lorsque je veux faire disparaitre le menu liée a la page qui est redevenu masqué

!!!!!!!!!!!!!!!BAH CA MARCHE PO !!!!!!!!!!!!!!!

au passage mon code pour supprimer / ajouter mon menu

// Fonction pour créer le menu (si ce n'est pas déjà fait)
function creerMenu() {
  // Vérifie si le menu existe déjà
  var menus = SpreadsheetApp.getUi(); 
  var menuExiste = false;
  for (var i = 0; i < menus.length; i++) {
    if (menus[i].getName() == 'ACTION') {
      menuExiste = true;
      break;
    }
  }

  // Crée le menu s'il n'existe pas
  if (!menuExiste) {
  SpreadsheetApp.getUi()
      .createMenu('ACTION')
      .addItem('Envoyez la commande', 'vlc')
      .addSeparator()
      .addItem('Enregistrez', 'vseem')
      .addSeparator()
      .addItem('Annulez', 'annuler')
      .addToUi();
  }
}

/// Fonction pour supprimer le menu
function supprimerMenu() {
  var menus = SpreadsheetApp.getUi(); // Obtenir la liste des menus
  for (var i = 0; i < menus.length; i++) { // Parcourir la liste des menus
    if (menus[i].getName() == 'ACTION SUR COMMANDE') { // Vérifier le nom du menu
      menus[i].deleteItem(0); // Supprimer le premier élément du menu (index 0)
      menus[i].deleteItem(0); // Supprimer le deuxième élément (qui est maintenant à l'index 0)
      menus[i].deleteItem(0); // Supprimer le troisième élément
      menus[i].deleteMenu(); // Supprimer le menu avec deleteMenu()
      break; // Sortir de la boucle après avoir supprimé le menu
    }
  }
}

Bonjour,

je ne connais pas le script de google sheet mais, si vous devez supprimer des éléments à partie d'une boucle, il faut partir de la fin et en remontant car, dans le cas présent, si vous supprimez un élément, celui-ci ayant disparu, c'est le suivant qui prendra sa place, donc il ne sera pas vu dans la boucle puisqu'il est censé être traité.

Donc la ligne suivante :

for (var i = 0; i < menus.length; i++)

devrait ressembler à ceci:

for (var i = menus.length - 1; i >= 0; i--) 'en décrémentant de -1 à chaque passage de la boucle

Bonjour,

Comment exécutez-vous la fonction supprimerMenu ? Manuellement ? À partir d'un autre script ?

salut pierre Encore toi !!!

la fonction supprimerMenus s 'exécute a la fin de mon code que a mon humble avis tu connais déjà

bref je l 'appel dans une autre fonction annuler () justement de mon menu crée ci joint le code

/**
 * Annule la commande en cours-> ca supprime la ligne de la commande, ca masque la commande et ca reviens sur l 'onglet chrono 
 */
function annuler() {
  if (SPREADSHEET.getActiveSheet().getSheetName() === PAGECOMMANDE.getSheetName()) {
   // Supprimer le menu lorsque la page "commande" est masquée
    supprimerMenu()

    PAGECOMMANDE.hideSheet();

    NEWLIGNESCHRONO.showSheet().activate().deleteRows(5);
    Browser.msgBox('Commande annulée');

  } else {
    Browser.msgBox('Action non valide sur la page');
  }
}

je voudrais supprimer cette partie de code et rendre le fichier plus agréable

} else {
    Browser.msgBox('Action non valide sur la page');
  }

merci a vous

Salut,

Pour supprimer un menu, de tête il faut faire removeMenu('nom du menu') sur le SpreadSheet.

Quant à ton Browser.msgBox('Action non valide sur la page');

il te suffit de le supprimer / remplacer par un console.info ou toast par exemple.

Hello,

Ce n'est pas dérangeant qu'il manque un ";" après supprimerMenu() ?

   // Supprimer le menu lorsque la page "commande" est masquée
    supprimerMenu() // ici : supprimerMenu(); ??

Sinon oui j'ai vu comme @Pierre pour supprimer un menu, mais c'est étrange ce n'est pas indiqué dans la doc des menus.

Salut @saboh, ce remove n'est pas à utiliser sur l'objet UI mais Spreadsheet, ce pourquoi tu ne le trouve pas dans la doc menu, j'ignore pour quelle raison c'est là d'ailleur.

https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet?hl=fr#removemenuname

Merci a vous deux en realité le code que vous me proposé n efface pas le menu, MAIS les fontions/menu d actions qui y sont liee, le titre des actions disparaissent !!! Donc ca marche cool

Alors c est soit j ai mal ecrit ce qui m arrive souvent!!! Sinon je vais retester tous cela

Merci pour la piste

Rechercher des sujets similaires à "recherche code type supprimer ajouter menu"