App Script - Fonction replace non fonctionne pas

Bonjour,

Je viens d'écrire un script dans l'App Script.

Au moment de l'exécuter, j'ai un message d'erreur me disant que "ma variable".replace n'est pas une fonction.

Je n'arrive pas à corriger le problème. Quelqu'un peut-il m'aider ?

Merci beaucoup

Cordialement.

image

Bonjour, peux-tu poster ton script dans l'onglet "Code" ?

code

Cdlt

Alex

Bonjour,

Replace fonctionne sur des données de type texte (string).

Afin de trouver ce qui bloque, ajoute ceci avant ta ligne replace :

Logger.log("affichage de la variable messagemail : "+messagemail)
Logger.log("type de la variable messagemail : "+typeof(messagemail))

Que dit ensuite les logs ?

Bonjour,

Merci pour vos retours.

Je met les codes comme demandé par Alexander (au passage bonne fête )

function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet()
var feuille_1 = ss.getSheetByName("Feuille 1");
var texte_mail = ss.getSheetByName("Message");
var subject = texte_mail.getRange(2,1).getValue();

var n = feuille_1.getLastRow();
for (var i = 2; i < n +1; i ++) {
var emailadresse = feuille_1.getRange(i,3).getValue();
var nom = feuille_1.getRange(i,1).getValue();
var prenom = feuille_1.getRange(i,2).getValue();
var aikido = feuille_1.getRange(i,4).getValue();
var badminton = feuille_1.getRange(i,5).getValue();
var fitgym = feuille_1.getRange(i,6).getValue();
var montant = feuille_1.getRange(i,7).getValue();
var messagemail = texte_mail.getRange(2,2).getValue

Logger.log("affichage de la variable messagemail : "+messagemail)
Logger.log("type de la variable messagemail : "+typeof(messagemail))

messagemail = messagemail.replace("<AIKIDO>",aikido).replace("<BADMINTON>",badminton).replace("<FITGYM>",fitgym).replace("<MONTANT>",montant);

MailApp.sendEmail(emailadresse,subject,messagemail);

}
}

Voici le résultat après avoir inséré les codes fournis par PierreLepinay :

image

Merci à vous pour votre aide.

Cordialement

Merci @GREG68, pour ton script apparemment il manquait les parentaises à getValue

var messagemail = texte_mail.getRange(2,2).getValue();

Voici ton script corrigé :

function myFunction() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var feuille_1 = ss.getSheetByName("Feuille 1");
  var texte_mail = ss.getSheetByName("Message");
  var subject = texte_mail.getRange(2, 1).getValue();

  var n = feuille_1.getLastRow();
  for (var i = 2; i <= n; i++) {
    var emailadresse = feuille_1.getRange(i, 3).getValue();
    var nom = feuille_1.getRange(i, 1).getValue();
    var prenom = feuille_1.getRange(i, 2).getValue();
    var aikido = feuille_1.getRange(i, 4).getValue();
    var badminton = feuille_1.getRange(i, 5).getValue();
    var fitgym = feuille_1.getRange(i, 6).getValue();
    var montant = feuille_1.getRange(i, 7).getValue();
    var messagemail = texte_mail.getRange(2, 2).getValue();

    Logger.log("affichage de la variable messagemail : " + messagemail);
    Logger.log("type de la variable messagemail : " + typeof(messagemail));

    messagemail = messagemail.replace("<AIKIDO>", aikido)
                             .replace("<BADMINTON>", badminton)
                             .replace("<FITGYM>", fitgym)
                             .replace("<MONTANT>", montant);

    MailApp.sendEmail(emailadresse, subject, messagemail);
  }
}

Cdlt

Alex

+1 @Alexander

Ce pourquoi le log sur messagemail te dis que c'est une fonction, alors que ce devrait être du texte (string), il est donc impossible d'utiliser .replace sur une fonction.

Une fois corrigé comme l'a indiqué Alexander le script devrait fonctionner, et le log va afficher ton texte et dire que celle ci est une variable de type string.

Bonjour à vous !

Franchement un Grand Merci à tous les deux pour vous être penché sur mon "cas".

Merci pour votre disponibilité et vos explications.

Pour clôturer cette incident je vais devoir valider une réponse et c'est une décision difficile à prendre

Je vais valider celle d'Alexander mais je tenais quand même à vous remercier tous les deux.

Bien cordialement.

Bonjour, merci pour ton retour et si tu le souhaites tu peux valider plusieurs postes avec

Rechercher des sujets similaires à "app script fonction replace fonctionne pas"