Envoi des mails automatiques

Bonjour,

J'ai besoin de votre aide s'il vous plaît.

J'ai crée un sondage sur google Forms destiné aux opérateurs pour le contrôle règlementaire des chariots.

Grace aux informations recueilli dans google sheet, j'aimerai qu'en cas de non conformité la ligne soit coloriée en rouge et qu'un mail sois envoyé automatiquement aux 4 techniciens de maintenance pour qu'ils interviennent.

Dans la feuille réponse, se trouve toutes les réponses des opérateurs

Dans la feuille 4, j'ai fait utilisé la fonction QUERY IMPORTRANGE pour importer les informations qui m'étaient nécessaires.

Je ne sais pas quelle fonction utilisée pour réaliser ces différentes actions

Merci à tous pour vos réponses

Bonjour, et bienvenue,

Bonjour,

tu m'as devancé !!

je recherche la même chose j'ai crée une form qui alimente un sheet pour les prises de poste des caristes.

Je voudrais que ça envoi un mail automatiquement au personne si l'état dans une colonne est "Critique" et que ça envoi un fichier en pdf ou en doc qui récap toute les données (la ligne qui à l'état critique).

Je pense que l'on cherche la même choses

Bonjour,

Oui on recherche la même chose, mais je ne sais pas s'il faut créer une macro,

Je ne maîtrise pas forcément les macros, je suis en alternance et dans mon entreprise on utilise pas Excel donc j'apprends à utiliser google sheet

Si tu trouves la solution n'hésite pas à m'informer je ferai de même

image

Les MFC conforme et non conforme se superposaient et s'annulaient !! je ne pense pas qu'il faille mettre = devant.

Je regarde pour la ligne complète

Je te tiendrais au courant si je trouve une solution

Pour la ligne complète, tu peux ajouter cette formule dans la MFC

=not(iserror(MATCH("Non conforme";$D1:$W1;0)))

un mail sois envoyé automatiquement aux 4 techniciens de maintenance pour qu'ils interviennent.

quelles infos veux-tu envoyer ?

Bonjour,

Oui par exemple comme message j'aimerai avoir <<chariot 143 non conforme; ou écrire le message inscrit dans la colonne observation >>

Pour écrire le script, il fait connaître le nom des différentes zones de ton formulaire.

Ce que je te propose alors, c'est de mettre ce script dans ta feuille (pas dans la form) avec ton adresse email, à la place de

to: 'xxxxxxxxxx@fai.fr',

ensuite

  1. tu exécutes myTriggerSetup et tu réponds aux consignes de sécurité
  2. tu fais un essai avec la form et tu donnes ici le contenu du mail (qui fera apparaître les noms de variables)
function myTriggerSetup() {
  if(!isTrigger('onFormSubmit')) {
    ScriptApp.newTrigger('onFormSubmit')
      .forSpreadsheet(SpreadsheetApp.getActive())
      .onFormSubmit()
      .create();
  }
}
function isTrigger(funcName) {
     var r=false;
     if(funcName) {
       var allTriggers=ScriptApp.getProjectTriggers();
       var allHandlers=[];
       for(var i=0;i<allTriggers.length;i++) {
         allHandlers.push(allTriggers[i].getHandlerFunction());
       }
       if(allHandlers.indexOf(funcName)>-1) {
         r=true;
       }
     }
     return r;
}

function onFormSubmit(e) {
  var responses = e.namedValues;
  MailApp.sendEmail({
    to: 'xxxxxxxxxx@fai.fr',
    subject: 'test envoi onFormSubmit',
    htmlBody: JSON.stringify(responses),
  });
  status = 'Sent';
  // Append the status on the spreadsheet to the responses
  var sheet = SpreadsheetApp.getActiveSheet();
  var row = sheet.getActiveRange().getRow();
  var column = e.values.length + 1;
  sheet.getRange(row, column).setValue(status);
}

Merci pour tes différentes réponses, par contre je ne m'y connais pas trop en programmation

du coup <<myTriggerSetup>> c'est une macro que je dois enregistré ?

Avant d'indiquer la marche à suivre ... il n'y a pas de formulaire attaché à ton fichier !

Voici la marche à suivre

  1. je créer un nouveau fichier
  2. par le menu, je crée un formulaire (Outils > Créer un formulaire)
  3. je reprends le fichier, Extension > App scripts, je colle le script ci-dessous et ...
    1. je mets l'adresse email en début de script
    2. je mets le terme choisi pour alerter
    3. je mets le texte du sujet du mail
  4. je fais Exécuter > myTriggerSetUp et j'accepte les demandes de google jusqu'au bout
  5. je lance mon formulaire
  6. je renseigne et j'envoie
  7. un email a été envoyé avec les données si le script rencontre la valeur indiquée dans le mot clé
const adresseEmail = 'xxxxxxxxxxx@orange.fr'
const motCle = 'non conforme'
const sujet = 'Demande intervention technicien ...'

function myTriggerSetup() {
  if(!isTrigger('onFormSubmit')) {
    ScriptApp.newTrigger('onFormSubmit')
      .forSpreadsheet(SpreadsheetApp.getActive())
      .onFormSubmit()
      .create();
  }
}
function isTrigger(funcName) {
     var r=false;
     if(funcName) {
       var allTriggers=ScriptApp.getProjectTriggers();
       var allHandlers=[];
       for(var i=0;i<allTriggers.length;i++) {
         allHandlers.push(allTriggers[i].getHandlerFunction());
       }
       if(allHandlers.indexOf(funcName)>-1) {
         r=true;
       }
     }
     return r;
}

function onFormSubmit(e) {
  var responses = e.namedValues;
  getData(eval(responses))
  if (!drapeau) {return}
  MailApp.sendEmail({
    to: adresseEmail,
    subject: sujet,
    htmlBody: '<table>' + result + '</table>', 
  });
  var d = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "dd MMM yyyy hh:mm a");
  var sheet = SpreadsheetApp.getActiveSheet();
  var row = sheet.getActiveRange().getRow();
  var column = e.values.length + 1;
  sheet.getRange(row, column).setValue('Envoyé : ' + d);
}

let result = ''
let drapeau = false
function getData(obj) {
  for (let p in obj) {
    if (obj[p]!=null){
      if (typeof obj[p] != 'object' && typeof obj[p] != 'function'){
        result += '<tr><td>'+ obj[p] + '</td></tr>';
        if (obj[p] == motCle) {drapeau = true}
      }
      if (typeof obj[p] == 'object') {
        if (obj[p].length){
          result += '<tr><td><b>'+ p + ' :</b></td></tr>';
        }
        getData(obj[p]);
      }
    }
  }
}

peut-être encore à affiner ...

Bonjour,

Merci pour les explications, je vais tester le programme et je reviendrai vers toi

Bonjour,

Je suis entrain de suivre les différentes étapes que tu m'as indiqué, mais comme je l'ai dis précédemment c'est un défis pour moi d'apprendre la programmation.

Je suis à l'étape 3 , Quel est le fichier d'extension que je dois prendre ? "je reprends le fichier, Extension > App scripts, je colle le script ci-dessous et ..."

Je te remercie vraiment pour ton implication et ta disponibilité

Quel est le fichier d'extension que je dois prendre ?

Extensions est un menu de ta feuille

script

Merci pour la démonstration,

J'ai exécuté le programme comme indiqué, par contre lorsque je réponds au sondage sur google Forms et que je marque une non conformité

Cela ne m'envoie pas un message automatiquement, alors je ne sais pas si c'est parce que j'utilise la même adresse

non, cela fonctionne aussi avec la même adresse

je veux bien y jeter un œil si tu m'envoie le lien vers ton fichier, si besoin en mp

ta form transmet-elle bien les informations sur ta sheet ?

Rechercher des sujets similaires à "envoi mails automatiques"