Mettre une information prise avec inputBox à une case

Bonjour,

Je fais un code en app script que quand une case à cocher (A2) est égal à vrai, une boite de dialogue (inputBox) s'affiche est demande "Quel est ton pseudo ?". Maintenant j'aimerais mettre la réponse de inputBox à la case (B2) si l'inputBox est pas vide.

Code app script :

function onEdit(event){
    var feuille = event.source.getActiveSheet();
    var cellule = event.source.getActiveRange();
    if (feuille.getName()=='Test'){
        if (cellule.getA1Notation()=='A2' && cellule.getValue()){
            const pseudo = Browser.inputBox('Quel est votre pseudo ?');
            SpreadsheetApp.getActiveSpreadsheet().toast('En cours');
            cellule.setValue(false);
           }
       }
}

J'ai pensé utilisé, si il y a la même chose en Google sheets ce java script (code en java script):

if (Browser.inputBox == "" || Browser.inputBox == " ") {
    alert('Veuillez renseigner votre pseudo');
} else {
     // Exécution de l insertion dans la case B2

Est-ce possible ? Si, comment faire ?

Merci d'avance pour vos réponse.

Google Sheets: https://docs.google.com/spreadsheets/d/14zbi33rC-4a0-G6TmWFw6TnyKN1Z6HEkhX1hjzNyz6o/edit?usp=sharing

Bonjour,

ce n'est pas l'inputBox qu'il faut vérifier mais la variable "pseudo"

@Gilbert_RGI:

D'accord,

Correction:

if (pseudo == "" || pseudo == " ") {
    alert('Veuillez renseigner votre pseudo');
} else {
     // Exécution de l insertion dans la case B2

Au fait, est-il possible de déclencher alert comme en java script ?

Si on insère dans la structure (avec l'hypothèse de assigner la valeur à B2 et quelques corrections):

function onEdit(event){
  var feuille = event.source.getActiveSheet();
  var cellule = event.source.getActiveRange();
  if (feuille.getName()=='Test'){
    if (cellule.getA1Notation()=='A2' && cellule.getValue()){
      const pseudo = Browser.inputBox('Quel est votre pseudo ?');
      if (pseudo == "" || pseudo == " ") {
              SpreadsheetApp.getActiveSpreadsheet().toast('Veuillez renseigner votre pseudo');
        } else {
              SpreadsheetApp.getActiveSpreadsheet().toast('En cours');
              pseudo = 'B2';
              cellule.setValue(false);
              }
        }
      }
   }
}

Bonjour,

L'équivalent de alert est

Browser.msgBox('voici une alerte')

Tu peux aussi utiliser un message qui apparaît quelques secondes en bas à droite ...

function toast(body, title, timeout) {
  return SpreadsheetApp.getActive().toast(
    body,
    title || "information",
    timeout || 5 // In seconds
  );
}

que tu appelles comme suit :

toast('voici une alerte')

Merci Gilbert_RGI et Mikhail,

Mais j’arrive avec ma première question:

Comment insérer la variable pseudo à la case B2 ?

Merci d’avance pour vos réponses.

Code:

function onEdit(event){
  var feuille = event.source.getActiveSheet();
  var cellule = event.source.getActiveRange();
  if (feuille.getName()=='Test'){
    if (cellule.getA1Notation()=='A2' && cellule.getValue()){
      const pseudo = Browser.inputBox('Quel est votre pseudo ?');
      if (pseudo == "" || pseudo == " ") {
              SpreadsheetApp.getActiveSpreadsheet().toast('Veuillez renseigner votre pseudo');
Browser.inputBox('Quel est votre pseudo ?');
        } else {
              SpreadsheetApp.getActiveSpreadsheet().toast('En cours');
              // Insertion pseudo à B2
              cellule.setValue(false);
          }
       }
    }
}

Bonne Journée

Bjr,

feuille.getRange('B2').setValue(pseudo)

Voilà une autre proposition utilisant les valeurs des boutons dans une boite de dialogue

function onEdit(event){
  var feuille = event.source.getActiveSheet();
  var cellule = event.source.getActiveRange();
   var ui = SpreadsheetApp.getUi();
  if (feuille.getName()=='Test'){
    if (cellule.getA1Notation()=='A2' && cellule.getValue()){
   var result = ui.prompt('Faisons plus ample connaissance!',
'S il vous plaît entrez votre nom:',
      ui.ButtonSet.OK_CANCEL);
  // Traitement de la réponse de l'utilisateur.
  var button = result.getSelectedButton();
  var text = result.getResponseText()};
  if (button == ui.Button.OK) {
    // Utilisateur clique "OK".
    ui.alert('Votre nom est :' + text + '.');
    var ss = SpreadsheetApp.getActiveSheet().getRange('B2').setValue(text);
  } else if (button == ui.Button.CANCEL) {
    // Utilisateur clique "Cancel".
    ui.alert('Je ne connais pas votre nom');
  } else if (button == ui.Button.CLOSE) {
    // Utilisateur clique X dans la barre du titre.
    ui.alert('Fermer le dialogue.');
  }
}}

Merci beaucoup à vous deux,

Vous m'avez beaucoup aidé, et les réponses à mes questions vont me permettre à développer des script plus sophistiqués.

Code final:

function onEdit(event){
  var feuille = event.source.getActiveSheet();
  var cellule = event.source.getActiveRange();
  if (feuille.getName()=='Test'){
    if (cellule.getA1Notation()=='A2' && cellule.getValue()){
      const pseudo = Browser.inputBox('Quel est votre pseudo ?');
      if (pseudo == "" || pseudo == " ") {
              SpreadsheetApp.getActiveSpreadsheet().toast('Veuillez renseigner votre pseudo');
              Browser.inputBox('Quel est votre pseudo ?');
        } else {
              SpreadsheetApp.getActiveSpreadsheet().toast('En cours');
              feuille.getRange('B2').setValue(pseudo)
              cellule.setValue(false);
          }
       }
    }
}

Bonne Journée

Merci Gilbert, je connaissais pas les

  var ui = SpreadsheetApp.getUi();
  ui.prompt('Faisons plus ample connaissance!', ui.ButtonSet.OK_CANCEL);
  ui.alert('Votre nom est :' + text + '.')

J'ai expérimenté autre chose pour l'alerte 'en cours'.

SpreadsheetApp.getActiveSpreadsheet().toast('En cours de collecte d'information de '+pseudo);

J'aime beaucoup le grille-pain (toast) !

Rechercher des sujets similaires à "mettre information prise inputbox case"