Notif email échéance date

Bonjour à toutes et à tous

Au travail, je suis chargé de référencer du matériel qui nécessite un suivi d'étalonnage.

Mon idée était de créer un listing de ce matériel avec une date d'échéance (plusieurs colonnes : catégorie, type, lien vers un dossier Drive contenant les PV scannés, date de la prochaine vérification etc...).

J'aurais souhaité que lorsqu'on arrive à 1 mois ou 2 (à définir) avant la date d'échéance, une notification par mail soit envoyée à une adresse mail afin que la personne concernée pense à l'envoyer en vérification.

Est-ce que cela est facilement faisable ?

Je vous remercie d'avance.

Maliko.

Bonjour et bienvenue,

as-tu un embryon de projet ? peux-tu mettre le lien vers ce fichier ? ce n'est pas très compliqué à réaliser

Je vais voir ce que je peux faire. Ça restera un tableau assez simple mais il faut que je me prenne le temps.

À la base je suis mécano gazier, j'aime bien l'informatique mais je suis à des années lumières de savoir faire du vba ou tout autre script ^^

Je te tiens au courant au plus vite.

Bon j'ai eu un peu de temps pour faire une ébauche de ce que je souhaiterai.

https://docs.google.com/spreadsheets/d/1cgQeoiNj34k1iLNwQ-_aVSNJEzH3sPx8imNtiv-vhEw/edit?usp=sharing

L'idéal serait de recevoir un mail (se référant à la colonne "email propriétaire") 1 mois avant expliquant quel matériel (désignation matériel + numéro de série) arrive bientôt à échéance.
Si possible avec le lien du Sheet pour que la personne n'ait plus qu'à ouvrir le tableau et prendre connaissance plus précisément du besoin.

Je te remercie ;)

je t'ai demandé une autorisation, sinon mets le fichier a minima en lecture https://www.sheets-pratique.com/fr/cours/partage

Normalement j'ai répondu à l'accès en éditeur quasi instantanément. J'étais encore devant le pc à ce moment là.

ah ok merci j'ai en effet accès

Un premier jet

function rappel() {
  var f = SpreadsheetApp.getActive().getSheetByName('Listing matériel');
  var derL = getLastDataRow(f);
  var maintenant = new Date().getTime();
  var delai = new Date(maintenant + 30 * 86400000); // 30 jours
  for (var i = 2; i <= derL; i++){
    if ( (f.getRange(i,8).getValue() == '') && (f.getRange(i,4).getValue() <= delai) ) {
      var destinataire = f.getRange(i,5).getValue()
      var texte = f.getRange(i,2).getValue() + ' ' + f.getRange(i,3).getValue() + ' avant le ' + Utilities.formatDate(f.getRange(i,4).getValue(), "GMT+1", "dd/MM/yyyy")
      GmailApp.sendEmail(destinataire, 'Matériel à envoyer en métrologie', texte) ;
      var d = Utilities.formatDate(new Date(), "GMT+1", "dd/MM/yyyy à hh:mm a")
      f.getRange(i,8).setValue(d);
    }
  }
};

function getLastDataRow(sheet) {
  var lastRow = sheet.getLastRow();
  var range = sheet.getRange("A" + lastRow);
  if (range.getValue() !== "") {
    return lastRow;
  } else {
    return range.getNextDataCell(SpreadsheetApp.Direction.UP).getRow();
  }              
}

fais exécuter > rappel, et répond jusqu'au bot à toutes les demandes d'autorisation

si ok, on pourra ensuite mettre un déclencher quotidien qui fera le travail même fichier fermé

Alors avant tout, merci à toi pour ce service. C'est vraiment sympa.

Pour ce qui est du script. J'ai fait exécuter sous mon compte Google professionnel et je pense que nos admins interdisent les scripts car j'ai eu un message me disant que je devais donner les autorisations.
J'ai donc fait la manip avec mon compte perso en laissant les emails "bidons" dans la colonne. Cela a visiblement fonctionné puisque j'ai eu un mail me disant que le destinataire n'avait pas été trouvé...normal.
J'ai donc modifié l'email en mettant le mien et j'ai refais "exécuter" le rappel, mais là je n'ai toujours pas reçu de notif.

Concernant mon compte pro, une fois le fichier terminé, je vais voir si le service informatique peut m'autoriser l'exécution de scripts.

Bon c'est très bizarre et je ne l'explique pas.

J'ai modifié une date (12/03/2021), l'étalonnage est donc dépassé. J'ai bien reçu un mail. J'ai modifié à nouveau les dates pour faire des essais et là je n'ai plus rien.

L'envoi de mail par des scripts est peut être bridé par google pour éviter les spams. Je peux donc faire un test uniquement tous les X heures ou minutes sans doute.

D'abord, une fois un mail envoyé, pour éviter les répétitions, il y a une date d'envoi inscrite dans le tableau dernière colonne à droite. Donc si c'est envoyé, cela ne le sera plus.

Si la date est antérieure, oui il y a un envoi ... faut-il bloquer ? à terme tout sera envoyé via ce fichier et il ne devrait pas y avoir de cas.

Maintenant pour les autorisations professionnelles ... regarde quand même si tu ne peux pas répondre aux demandes d'autorisation. Il faut aller assez loin et cliquer sur "avancé"

autorisation

Alors pour l'email :

L'idée est qu'une fois l'appareil revenu d'étalonnage, je vais sur sa ligne et je modifie la date d'échéance pour qu'on recommence. Donc il faudra que l'année prochaine ou 2 ans après (- 1mois), un mail soit envoyé à nouveau.

Mais là où tu as raison (et je n'y avais pas pensé), c'est que si l'appareil est en cours d'étalonnage le script va continuer à envoyer un mail chaque jour. D'où ta colonne à droite que je n'avais pas vu qui permet de faire un envoi unique. Bien joué...

Mais du coup quand je changerai sa date une fois revenu, va-t-il renvoyer un mail un mois avant la nouvelle date ?

En ce qui concerne les autorisations et ton screen, c'est ce que j'ai fait pour mon compte perso. Le compte pro lui a validé les autorisations mais une fois l'exécution faite, un bandeau orange m'a dit que je devais avoir les autorisations.

Nos comptes pro sont géré avec Google Device Policy sur nos smartphone etc... On est très bridé. Mais ça je m'en occuperai.

Je viens de prendre mon PC pro à la maison... vais me faire engueuler ^^

Alors j'ai supprimé la date dans la colonne de droite et j'ai modifié la date pour réessayer l'envoi et effectivement cela fonctionne parfaitement.
J'ai également réussi à faire l'envoi depuis mon compte pro...

Puis je modifier le contenu du mail ?
Par exemple si mes collègues souhaitent que j'ajoute des informations dans des colonnes et qu'elles doivent apparaitre dans l'email ?

Je veux bien que tu m'explique :)

Même si je ne sais pas coder, ça me permettrai de comprendre un minimum.

Encore merci en tout cas ! C'était peut être pas grand chose pour toi, mais pour moi c'et juste parfait :)

J'ai un peu compris la structure du code. J'ai donc réussi à apporter les modifications nécessaire

Génial, si tu as réussi à modifier toi même le code.

Pour ce qui est de retour d'étalonnage ...

L'idée est qu'une fois l'appareil revenu d'étalonnage, je vais sur sa ligne et je modifie la date d'échéance pour qu'on recommence. Donc il faudra que l'année prochaine ou 2 ans après (- 1mois), un mail soit envoyé à nouveau.

on peut ajouter une colonne de cases à cocher par exemple. En retour d'étalonnage, le fait de cocher la case décale la prochaine date d'étalonnage de 6 mois, 1 an, 2 ans (paramètre à définir par appareil ?) et efface la date d'envoi du mail.

Ne t'embête pas, je demanderai à ce que le propriétaire du matériel entre la nouvelle date et supprime la date d'envoi.
En tous cas je suis super content du résultat. J'ai plus qu'à entrer toutes les références d'appareils et à lancer ça :)

Je laisse le sujet ouvert un petit moment au cas où mais je pense que ça devrait le faire.
Un grand merci à toi pour ce petit code et ce temps passé

Rechercher des sujets similaires à "notif email echeance date"