Automatisation d'un tableau avec plusieurs feuilles

L'idée, c'est d'envoyer un e-mail (du coup, avec Gmail, cela me semble le plus adapté comme tu le conseilles) lorsque d'un prêt (donc dans la feuille 'prêt') arrive à échéance sur la colonne E : "Fin". Si on peut reprendre automatiquement l'e-mail de la personne en colonne B de la même ligne avec si possible les raquettes associées, ce serait le top.

Cela semble compliqué dit comme ça non ?

ok, je fais cela ce soir ou demain au plus tard (je ne suis pas forcément dispo cet apm)

Oh t'inquiètes, rien d'urgent, c'est déjà hyper sympa de me confectionner tout cela ! Je te remercie vraiment !

Ajoute ceci

function relances(){
  var prets = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("prêt");
  var lastRow = prets.getLastRow();
  var d = new Date();
  for (var i=2; i<=lastRow; i++){
    if ((!prets.getRange('F' + i).getValue()) && (prets.getRange('E' + i).getValue()<=d) && (prets.getRange('B' + i).getValue()!='')){
      var texte = "Bonjour " + prets.getRange('A' + i).getValue() + "<br>Le prêt des raquettes suivantes est arrivé à l'échéance :<br>" 
      texte = texte + prets.getRange('G' + i).getValue() + "<br>"
      texte = texte + prets.getRange('H' + i).getValue() + "<br>"
      texte = texte + prets.getRange('I' + i).getValue() + "<br>"
      texte = texte + prets.getRange('J' + i).getValue() + "<br>"
      texte = texte + prets.getRange('K' + i).getValue() + "<br>"
      texte = texte + "Amicalement"
      MailApp.sendEmail({to: prets.getRange('B' + i).getValue(),subject: "Echéance sur prêt de raquette",htmlBody: texte});
    }
  }
}

tu fais ensuite outils > macros > importer > ajouter la fonction relances

il faudra autoriser cette fonction

capture d ecran 412

Enfin, tu mettre un déclencheur sur cette fonction, tous les jours à 6h par exemple, et le mail partira de lui-même sans ouvrir le fichier.

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

C'est top, merci beaucoup Steelson !

Dernière question et je ne t'embête plus,

Je viens d'essayer en renseignant une signature dans Gmail mais cela n'a pas l'air de fonctionner à l'envoi.

Comment puis-je faire pour ajouter un lien dans le corps du mail, j'ai essayé la balise <a> mais cela ne fonctionne pas.

Un lien vers quoi ?

Tu peux ajouter :

      texte = texte + "Amicalement,<br>"
      texte = texte + "guitown"

Un lien vers un site Web soit une url.

essaie ceci et ensuite adapte

      texte = texte + "Amicalement,<br>"
      texte = texte + '<a href="https://forum.excel-pratique.com/sheets/automatisation-d-un-tableau-avec-plusieurs-feuilles-152179">TEXTE</a>'

attention aux guillemets et apostrophes !

OK top, il me manquait les apostrophes !

Pour le déclencheur, rien de particulier dans la configuration ? Je l'applique au script "relance" puis horaires quotidiennes avec une fourchette prédéfinie. Il va savoir qu'il faut envoyer un e-mail d'après la colonne "Fin" lorsque la date correspond à celle du jour ?

Essaie en mettant ton email, on ne sait jamais ! mais oui c'est cela ...

C'est top, ça fonctionne ! Par contre, est-ce qu'on peut limiter l'envoi du mail une seule fois par personne ?

J'ai fait l'exemple avec deux adresses mail différentes, une échéance hier et une aujourd'hui, j'ai reçu la notif hier : nickel. Sauf qu'aujourd'hui, j'ai bien eu le mail sur la 2e adresse mais également sur la première pour la 2e fois.

Ajoute une date de relance en colonne L

function relances(){
  var prets = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("prêt");
  var lastRow = prets.getLastRow();
  var d = new Date();
  for (var i=2; i<=lastRow; i++){
    if ((!prets.getRange('F' + i).getValue()) && (prets.getRange('L' + i).getValue()=='') && (prets.getRange('E' + i).getValue()<=d) && (prets.getRange('B' + i).getValue()!='')){

// ici le code sans changement

     prets.getRange('L' + i).setValue(new Date())
    }
  }
}

OK top ! Merci (encore et encore !)

Bonjour Steelson, Ô grand maître !

Tout d'abord, je voudrais m'assurer que je n'abuse pas de ton temps et que tu veuilles bien m'aider une nouvelle fois...

Voici le lien vers le fichier que j'ai créé : https://docs.google.com/spreadsheets/d/1V8oGJlz0j314lJZvdaXfHiqOR7fj7DwrMz5-CCvi8xk/edit?usp=sharing


Dans la feuille "cordage" :

  • Col A = Case cochée par le codeur, une fois la raquette terminée
    • Il faudrait envoyer un e-mail à l'adresse présente en Col C de manière à informer le client que sa raquette est prête
  • Col B, C, D, E, F, G, H, I = Rien à signaler de particulier
  • Col J = Il faudrait qu'un e-mail de relance soit envoyé pour informer le client (toujours avec l'adresse présente en Col C) à J+3 (soit le jeudi 25 février 2021 d'après mon fichier), si et seulement si la case en Col M n'est pas cochée.
  • Col K, L = Rien à signaler de particulier
  • Col M = Lorsque la case est cochée car le client est venu récupéré sa raquette, il faudrait "photographier" la ligne et la coller dans la feuille "archives" (finalement, comme sur ma précédente demande)

Encore une fois, un grand MERCI pour ta disponibilité.

Excellent weekend,

Guillaume.

Pas d'idée Steelson, ou les autres ?

Bonjour guitown

J'ai juste zappé le fil de discussion ... je vais regarder cela !

Essaie comme ceci pour A et M

edit : correction page suivante (envoi mail et onedit incompatibles)

Merci Steelson, il me dit ça :

  • TypeError: Cannot read property 'source' of undefined

Tu as une idée ?

Rechercher des sujets similaires à "automatisation tableau feuilles"