Lancer une macro par un double-clic sur une cellule ?

Bonjour,

Ma question est presque dans le titre.

J'ai créé une macro que je peux lancer par CTRL+ALT+ MAJ +1 ce qui est un peu long.

Est-il possible de la lancer par un double-clic sur par exemple la cellule L1 ? Comment ?
Ce code remplacerait le CTRL+ALT etc... ou si c'est plus simple en désignant le nom de la macro.

Excellente journée

Bonjour,

A ma connaissance ... NON. J'ai eu le cas récemment, j'ai mis un bouton qui au début de la macro prend la cellule sélectionnée en compte.

Bonjour,

Si j'ai bien compris, c'est impossible à partir d'une celllule comme sur Excel mais le serait à partir d'un bouton.

Comment le faire ? Il y a peut-être un pas à pas en ce sens ?

Excellente journée

Bonjour, TonThon

En effet Google Sheets (GAS) ne gère pas le double clique comme Excel (VBA)

On peut toutefois simuler et rendre actif un clique avec une case à cocher et un script

comme ceci

test oneselectchange2

Excellente idée en effet

On peut toutefois simuler et rendre actif un clique avec une case à cocher et un script

en remettant en plus à false après exécution, de la macro par exemple !

function onEdit(event){ 
  var col = 1;
  var feuille = "test";
  var f = event.source.getActiveSheet();
  var r = event.source.getActiveRange();
  if (r.getColumn() == col){ 
    if (f.getName() == feuille){
      if(r.getValue() == 1){ 
        Browser.msgBox('Nous sommes en ligne : ' + r.getRow());
        r.setValue('FALSE');
      }
    }
  }
}

Voilà le code et le déclencheur à ajouter

function onSelectionChange(e) {
  var range = e.range;
  //Cellule L1
  if((range.getRow()!==1) || (range.getColumn()!==12)){
   }else{
      var txt = range.getValue();
    txt = txt.toString();
       if (txt !== 'false'){
    // commenter la ligne ci-dessous et ajouter le nom de la macro à executer
      Browser.msgBox("Je suis en R"+range.getRow()+"C"+range.getColumn()+" je lance la macro")
    }else{
    //commenter le ligne ci-dessous
      Browser.msgBox("Je suis en R"+range.getRow()+"C"+range.getColumn()+" je ne lance pas la macro:");
    };};};
20201203 160429 001

@ Gilbert,

j'avais tenté d'utiliser onSelectionChange récemment, mais échec et j'en avais conclu à la lecture de certains post comme ici que

It seems it is fully rolled out to all users. You should be able to get it working without any modification to the code. The e, event object is similar to the onEdit event object.

https://stackoverflow.com/questions/61408971/what-am-i-doing-wrong-when-using-onselectionchange

du coup je m'tais tourné vers onEdit !

je vais ressayer si tu n'as pas de soucis de ton côté !

edit : ok, je ne sais pas ce que j'avais donc fait auparavant ! la différence entre les 2 est qu'il faut avoir changé de cellule (on ne peut pas relancer en restant sur la cellule).

@Steelson,

Cela fait déjà un certain temps
onSelectionChange fonctionne à condition de le régler correctement dans le déclencheur du projet actuel du menu Edition.

ok merci

j'ai comparé les 2, j'ai un poil de latence supérieur, mais peu perceptible

function onEdit(e){ 
// on déclenche sur un changement
  var r = e.range;
  if (r.getColumn() == 1){ 
    if(r.getValue() == 1){ 
      Browser.msgBox("Je suis en R"+r.getRow()+"C"+r.getColumn()+" je lance la macro")
      r.setValue('FALSE');
    }
  }
}

function onSelectionChange(e) {
// on déclenche sur une modification
  var r = e.range;
  if(r.getColumn()==3){
    if (r.getValue().toString() !== 'false'){
      Browser.msgBox("Je suis en R"+r.getRow()+"C"+r.getColumn()+" je lance la macro")
      r.setValue('FALSE');
    }
  }
}
Rechercher des sujets similaires à "lancer macro double clic"