Macro déclenchée à partir d'une case à cocher

Bonjour à tous,

J'ai besoin d'un petit coup de main pour déclencher automatiquement l'une de mes macros à partir d'une case à cocher, est-ce que qqn sait comment je pourrais procéder ^^?

J'ai un petit tableau de suivi avec des cases à cocher en colonne A, et j'ai une macro qui me permet d'ouvrir une boite de dialogue qui demande à l'utilisateur la 'date de paiement', et qui l'inscrit dans la colonne D ('Date de paiement')

J'aimerais que la macro se déclenche DÈS QUE une case de la colonne A est cochée.

Auriez-vous une idée des lignes de codes que je dois rajouter à ma macro pour qu'elle se déclence à partir des cases à cocher en colonne A ?

Merci infiniment !

capture d ecran 2021 07 13 a 14 51 46

Bonjour,

un truc dans le genre ???

function onEdit(event){
  var feuille = event.source.getActiveSheet();
  var cellule = feuille.getActiveCell();
  if(feuille.getName()=='Nomdelafeuille' && cellule.getColumn() == 1){  
nomdemacro();
}
}

Salutations

Gilbert

Bonjour Gilbert et merci pour votre réponse ! Malheureusement ça ne fonctionne pas :(. Lorsque je coche une case de la colonne A, rien ne se passe, et lorsque je lance manuellement la macro OnEdit, j'ai un message d'erreur : "ReferenceError: event is not defined"

Bonjour Lauriane,

Je te confirme que la solution de Gilbert fonctionne ... il faut toutefois que tu dises ce que fait ta macro, car si elle envoie un email par exemple, alors il faut définir un déclencheur.

Dans tous les cas, mets un lien vers ton fichier.

https://docs.google.com/spreadsheets/d/1fZrs3_c3VSa_LeVh74_ZO_zfOC_Ha67Mjuq3Dwg7ma8/edit?usp=sharing

onedit

On ne nous dit pas tout .

Il faut souvent deviner la pensée des demandeurs !!!!

erreur normale "ReferenceError: event is not defined"

si vous lancez le script à partir de l'éditeur "event" est nul et non défini

Merci pour vos réponses rapides !

Malheureusement le fichier que j'utilise contient énormément de données confidentielles sur nos clients, je ne peux donc pas vous donner un lien. J'ai donc créé un fichier simplifié (sans données confidentielles) qui contient seulement la feuille calcul concernée par ma macro ^^. Voilà le lien : https://docs.google.com/spreadsheets/d/1GBy1iYQEMEY46HVcAP2c34ZxnYCv5f3c5qd9Z1hVtn0/edit?usp=sharing

La macro que j'aimerais déclencher s'appelle 'suivipaiement' et son script est ci-dessous :

function suivipaiement() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getActiveCell().offset(0, 1).activate();
  spreadsheet.getCurrentCell().copyTo(spreadsheet.getRange('I2').getNextDataCell(SpreadsheetApp.Direction.DOWN).offset(1, 0).activate(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  const nom2 = Browser.inputBox('Entrez la date du paiement (JJ/MM/AAAA) :');
 spreadsheet.getRange('J2').getNextDataCell(SpreadsheetApp.Direction.DOWN).offset(1, 0).activate().setValue(nom2);
};

Pour vous expliquer un peu l'objet d'une telle macro : à la base, les colonne C, D et F apparaissent grâce à une fonction filter. Elles sont donc amenées à changer régulièrement (dès qu'un nouveau client nous a payé, ses information apparaissent dans la premiere ligne du tableau, ce qui veut dire que les lignes actuelles vont progressivement être décalées vers le bas). C'est pourquoi je ne peux pas directement remplir la colonne E, car lorsque les lignes vont changer, la colonne E, elle, ne bougera pas avec. => d'où la présence de ce que pourrez voir en I et J et du système avec le recherchev en E (je n'ai pas trouvé mieux comme méthode :/)

Merci beaucoup pour votre aide !!!

Ca fonctionne !!

C'est ma faute, j'avais mal recopié la fonction !!

Merci bcp !

C'est bien votre macro qui ne reporte pas correctement les données...ne sachant pas les tenant et aboutissant je vous laisse peaufiner le code de cette macro

voici le script qui fonctionne avec les cases à cocher

event dans onEdit est très important

function onEdit(event){
  var feuille = event.source.getActiveSheet();
  var cellule = feuille.getActiveCell();
  if(feuille.getName()=='Suivi des paiements ISIOHM' && cellule.getColumn() == 1){  
      suivipaiement();
  }
}
Rechercher des sujets similaires à "macro declenchee partir case cocher"