Envoi d'un mail si la valeur n'est pas compris dans un intervalle

Je cherche à être notifier par mail lorsqu'une valeur n'est pas l'intervalle. Chaque feuille à son intervalle. Merci pour le temps que vous passiez à m'aider.

est-ce que function onEdit(event) est encore utile puisque tu as aussi function envoi()


je regarde la syntaxe dans onEdit ... quand tu écris

  var feuilleG = event.source.getActiveSheet();
  var feuilleD = event.source.getActiveSheet();

c'est donc la même feuille, pas besoin de donner 2 noms différents, à moins que tu ne veuilles affecter les feuilles = CAPA G et CPA D comme tu l'écris dans l'autre fonction ?

et du coup, ceci est la même chose, pG est égal à pD

    var pG = feuilleG.getRange('A'+i).getValue()
    var pD = feuilleD.getRange('A'+i).getValue()

ici, mets des parenthèses pour être sûr d'avoir le bon test

if ( (feuilleG.getName()=='CAPA G' || feuilleD.getName()=='CAPA G') && cellule.getColumn()==26)

bon, le mieux est de se focaliser sur une fonction d'abord, je vais prendre function envoi() qui me semble plus logique et claire

  1. est-ce normal que pour tous les Px, I38 et I39 aient la même valeur ? du coup en effet tout doit être envoyé en email !
  2. cela dit, là encore, mets des parenthèses pour que le test soit sans ambiguité
if (releve[0][n]!='' && ((releve[0][n]<limiteInfg) || (releve[0][n]>limiteSupg) || (releve[0][n]<limiteInfd) || (releve[0][n]>limiteSupd)))

regarde déjà ces 2 points ...

La fonction OnEdit(event) je l'utilise pour activer un déclencheur. Normalement les valeurs de I38 et I39 ne sont pas les mêmes.( Je les ai modifiées pour voir si mon programme fonctionne).

Et en mettant les parenthèses comme vous me l'avez suggérer, dans les mails je reçois tous les valeurs même celles comprises dans l'intervalle.

je me prends une copie et je regarde ...

Attention, pour le moment je regarde la fonction envoi (il faudra recopier alors une partie du code dans onedit)

J'ai ceci en résultat et cela me semble conforme :

P1
0.8 supG=0.31666666666666676 infG=-1.4833333333333334 supD=0.33209999999999995 infD=-1.4679000000000002

P2
1.3 supG=1.1806666666666668 infG=0.18066666666666675 supD=0.6553333333333335 infD=0.15533333333333355

P3
2 supG=2.392 infG=0.7919999999999998 supD=1.4403333333333335 infD=0.6403333333333334
0.2 supG=2.392 infG=0.7919999999999998 supD=1.4403333333333335 infD=0.6403333333333334
2.4 supG=2.392 infG=0.7919999999999998 supD=1.4403333333333335 infD=0.6403333333333334

P4
0.3 supG=0.2973333333333334 infG=-0.9026666666666665 supD=-0.431 infD=-1.031
-0.3 supG=0.2973333333333334 infG=-0.9026666666666665 supD=-0.431 infD=-1.031
0.1 supG=0.2973333333333334 infG=-0.9026666666666665 supD=-0.431 infD=-1.031

P5
0.7 supG=0.5629 infG=-0.6371 supD=-0.11576666666666663 infD=-0.7157666666666667
0.2 supG=0.5629 infG=-0.6371 supD=-0.11576666666666663 infD=-0.7157666666666667
function envoi() {
  var classeur = SpreadsheetApp.getActiveSpreadsheet();
  var feuilleG = classeur.getSheetByName('CAPA G');
  var feuilleD = classeur.getSheetByName('CAPA D');

  // chargement des données calendaires et horaires

  // préparation du mail
  var email = 'xxxxxxxxxxxxxxx@gmail.com'

  // boucle sur les lignes
  for (var i=8; i<=feuilleG.getLastRow(); i=i+20){

    // valeur de Px : P1,P2 ... Poids utiles pour aller chercher les limites
    var pG = feuilleG.getRange('A'+i).getValue()
    var pD = feuilleD.getRange('A'+i).getValue()
    var feuilleTolerances = classeur.getSheetByName('Capa '+pG)
    var limiteSupg = feuilleTolerances.getRange('H38').getValue()
    var limiteInfg = feuilleTolerances.getRange('H39').getValue()
    var limiteSupd = feuilleTolerances.getRange('I38').getValue()
    var limiteInfd = feuilleTolerances.getRange('I39').getValue()
    Logger.log(pG)// + ' ' + limiteSupg + ' ' + limiteInfg + ' ' + limiteSupd + ' ' + limiteInfd)

    // préparation du mail
    var texte = ''

    // chargement des données et boucle sur celles-ci
    var releve = feuilleG.getRange('D'+i+':Z'+i).getValues()
    for (var n=0;n<releve[0].length;n++){
      if (releve[0][n]!='' && ( (releve[0][n]<limiteInfg) || (releve[0][n]>limiteSupg) || (releve[0][n]<limiteInfd) || (releve[0][n]>limiteSupd) )){
        Logger.log(releve[0][n] + ' supG=' + limiteSupg + ' infG=' + limiteInfg + ' supD=' + limiteSupd + ' infD=' + limiteInfd)
        texte += releve[0][n] +  '\n'
      }
    }

    // envoi d'un mail par Px
    if (texte!='') {GmailApp.sendEmail(email, 'Message d\'alerte', 'Valeur hors limite de surveillance sur "' + pG + '"\n' + texte)}
  }
}    

Il prend en compte l'intervalle de la partie droite également tandis que je remplie que la partie Gauche. C'est ce qui me dérange .

Et merci de m'aider

Pour la partie gauche, et si j'ai bien compris ...

13:15:30    Infos    P1
13:15:30    Infos    0.8 supG=0.31666666666666676 infG=-1.4833333333333334
13:15:30    Infos    P2
13:15:30    Infos    1.3 supG=1.1806666666666668 infG=0.18066666666666675
13:15:31    Infos    P3
13:15:31    Infos    0.2 supG=2.392 infG=0.7919999999999998
13:15:31    Infos    2.4 supG=2.392 infG=0.7919999999999998
13:15:31    Infos    P4
13:15:31    Infos    0.3 supG=0.2973333333333334 infG=-0.9026666666666665
13:15:31    Infos    P5
13:15:31    Infos    0.7 supG=0.5629 infG=-0.6371
function envoi() {
  var classeur = SpreadsheetApp.getActiveSpreadsheet();
  var feuilleG = classeur.getSheetByName('CAPA G');

  // préparation du mail
  var email = 'xxxxxxxxxxxxxxx@gmail.com'

  // boucle sur les lignes
  for (var i=8; i<=feuilleG.getLastRow(); i=i+20){

    // valeur de Px : P1,P2 ... Poids utiles pour aller chercher les limites
    var pG = feuilleG.getRange('A'+i).getValue()
    var feuilleTolerances = classeur.getSheetByName('Capa '+pG)
    var limiteSupg = feuilleTolerances.getRange('H38').getValue()
    var limiteInfg = feuilleTolerances.getRange('H39').getValue()
    Logger.log(pG)

    // préparation du mail
    var texte = ''

    // chargement des données et boucle sur celles-ci
    var releve = feuilleG.getRange('D'+i+':Z'+i).getValues()
    for (var n=0;n<releve[0].length;n++){
      if ( releve[0][n]!='' && ( (releve[0][n]<limiteInfg) || (releve[0][n]>limiteSupg) ) ){
        Logger.log(releve[0][n] + ' supG=' + limiteSupg + ' infG=' + limiteInfg)
        texte += releve[0][n] +  '\n'
      }
    }

    // envoi d'un mail par Px
    if (texte!='') {GmailApp.sendEmail(email, 'Message d\'alerte', 'Valeur hors limite de surveillance sur "' + pG + '"\n' + texte)}
  }
}   

on peut ensuite dupliquer pour la droite

Le dupliquer dans la même fonction ou créer une nouvelle fonction svp si je veux que tout soit fait sur la même feuille?

Partie G et D dans la même fonction ...

function onOpen(e) {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('↓ Relance ↓')
  .addItem('Envois emails ↓', 'envoi')
  .addToUi();
}

function envoi() {
  var classeur = SpreadsheetApp.getActiveSpreadsheet();
  var email = 'xxxxxxxxxxxxxxx@gmail.com'

  // partie Gauche ====================
  var feuilleG = classeur.getSheetByName('CAPA G');
  // boucle sur les lignes
  for (var i=8; i<=feuilleG.getLastRow(); i=i+20){
    var texte = ''
    // valeur de Px : P1,P2 ... Poids utiles pour aller chercher les limites
    var pG = feuilleG.getRange('A'+i).getValue()
    var feuilleTolerances = classeur.getSheetByName('Capa '+pG)
    var limiteSupg = feuilleTolerances.getRange('H38').getValue()
    var limiteInfg = feuilleTolerances.getRange('H39').getValue()
    // chargement des données et boucle sur celles-ci
    var releve = feuilleG.getRange('D'+i+':Z'+i).getValues()
    for (var n=0;n<releve[0].length;n++){
      if ( releve[0][n]!='' && ( (releve[0][n]<limiteInfg) || (releve[0][n]>limiteSupg) ) ){
        texte += releve[0][n] +  '\n'
      }
    }
    // envoi d'un mail par Px
    if (texte!='') {GmailApp.sendEmail(email, 'Message d\'alerte', 'Valeur hors limite de surveillance sur "' + pG + '"\n' + texte)}
  }

  // partie Droite ====================
  var feuilleD = classeur.getSheetByName('CAPA D');
  // boucle sur les lignes
  for (var i=8; i<=feuilleD.getLastRow(); i=i+20){
    var texte = ''
    // valeur de Px : P1,P2 ... Poids utiles pour aller chercher les limites
    var pD = feuilleD.getRange('A'+i).getValue()
    var feuilleTolerances = classeur.getSheetByName('Capa '+pD)
    var limiteSupD = feuilleTolerances.getRange('I38').getValue()
    var limiteInfD = feuilleTolerances.getRange('I39').getValue()
    // chargement des données et boucle sur celles-ci
    var releve = feuilleD.getRange('D'+i+':Z'+i).getValues()
    for (var n=0;n<releve[0].length;n++){
      if ( releve[0][n]!='' && ( (releve[0][n]<limiteInfD) || (releve[0][n]>limiteSupD) ) ){
        texte += releve[0][n] +  '\n'
      }
    }
    // envoi d'un mail par Px
    if (texte!='') {GmailApp.sendEmail(email, 'Message d\'alerte', 'Valeur hors limite de surveillance sur "' + pD + '"\n' + texte)}
  }
}

à tester

Bonjour, je m'excuse pour le retard. Le programme fonctionne. Je vous remercie!

function onEdit(event){
  var classeur = SpreadsheetApp.getActiveSpreadsheet();
  var feuille = event.source.getActiveSheet();
  var cellule = event.source.getActiveRange();
  if (feuille.getName()=='CAPA '  && (cellule.getColumn()>=4 && cellule.getColumn()<=26)){
    var jour = feuilleG.getRange('D6:Z6').getDisplayValues()
    var heure = feuilleG.getRange('D7:Z7').getDisplayValues()
    var i=cellule.getRow()
    var email = '***********'

    // partie Gauche ====================
  var feuilleG = classeur.getSheetByName('CAPA');
    // valeur de Px : P1,P2 ... Poids utiles pour aller chercher les limites
    var pG = feuilleG.getRange('A'+i).getValue()
    var feuilleTolerances = classeur.getSheetByName('Capa '+pG)
    var limiteSupg = feuilleTolerances.getRange('I38').getValue()
    var limiteInfg = feuilleTolerances.getRange('I39').getValue()
    //Browser.msgBox(p + ' ' + limiteSup + ' ' + limiteInf)
    var texte = ''
    // chargement des données et boucle sur celles-ci
    var releve = feuilleG.getRange('D'+i+':Z'+i).getValues()
    for (var n=0;n<releve[0].length;n++){
      if ( releve[0][n]!='' && ( (releve[0][n]<=limiteInfg) || (releve[0][n]>=limiteSupg) ) ){
        texte += releve[0][n] + ' le ' + jour[0][n] + ' à ' + heure[0][n] + '\n'
         }
    }
    // envoi d'un mail par Px
    if (texte!='') {GmailApp.sendEmail(email, 'Message d\'alerte', 'Valeur hors limite de surveillance sur "' + pG + '"'  + '\n' + texte)}
  }

  // partie Droite ====================
  var feuilleD = classeur.getSheetByName('CAPA');
    // valeur de Px : P1,P2 ... Poids utiles pour aller chercher les limites
    var pD = feuilleD.getRange('A'+i).getValue()
    var feuilleTolerances = classeur.getSheetByName('Capa '+pD)
    var limiteSupD = feuilleTolerances.getRange('H38').getValue()
    var limiteInfD = feuilleTolerances.getRange('H39').getValue()
    //Browser.msgBox(p + ' ' + limiteSup + ' ' + limiteInf)
    var texte = ''
    // chargement des données et boucle sur celles-ci
    var releve = feuilleD.getRange('D'+i+':Z'+i).getValues()
    for (var n=0;n<releve[0].length;n++){
      if ( releve[0][n]!='' && ( (releve[0][n]<=limiteInfD) || (releve[0][n]>=limiteSupD) ) ){
        texte += releve[0][n] + ' le ' + jour[0][n] + ' à ' + heure[0][n] + '\n'
      }
    }
    // envoi d'un mail par Px
    if (texte!='') {GmailApp.sendEmail(email, 'Message d\'alerte', 'Valeur hors limite de surveillance sur "' + pD + '"' + '\n' + texte)}

}
function envoi() {
  var classeur = SpreadsheetApp.getActiveSpreadsheet();
  var email = '******'

  // partie Gauche ====================
  var feuilleG = classeur.getSheetByName('CAPA');
  var jour = feuilleG.getRange('D6:Z6').getDisplayValues()
  var heure = feuilleG.getRange('D7:Z7').getDisplayValues()

  // boucle sur les lignes
  for (var i=8; i<=feuilleG.getLastRow(); i=i+20){
    var texte = ''
    // valeur de Px : P1,P2 ... Poids utiles pour aller chercher les limites
    var pG = feuilleG.getRange('A'+i).getValue()
    var feuilleTolerances = classeur.getSheetByName('Capa '+pG)
    var limiteSupg = feuilleTolerances.getRange('H38').getValue()
    var limiteInfg = feuilleTolerances.getRange('H39').getValue()
    // chargement des données et boucle sur celles-ci
    var releve = feuilleG.getRange('D'+i+':Z'+i).getValues()
    for (var n=0;n<releve[0].length;n++){
      if ( releve[0][n]!='' && ( (releve[0][n]<=limiteInfg) || (releve[0][n]>=limiteSupg) ) ){
        texte += releve[0][n] + ' le ' + jour[0][n] + ' à ' + heure[0][n] + '\n'
         }
    }
    // envoi d'un mail par Px
    if (texte!='') {GmailApp.sendEmail(email, 'Message d\'alerte', 'Valeur hors limite de surveillance sur "' + pG + '" ' + '\n' + texte)}
  }

  // partie Droite ====================
  var feuilleD = classeur.getSheetByName('CAPA');
  var jour = feuilleD.getRange('D6:Z6').getDisplayValues()
  var heure = feuilleD.getRange('D7:Z7').getDisplayValues()

  // boucle sur les lignes
  for (var i=8; i<=feuilleD.getLastRow(); i=i+20){
    var texte = ''
    // valeur de Px : P1,P2 ... Poids utiles pour aller chercher les limites
    var pD = feuilleD.getRange('A'+i).getValue()
    var feuilleTolerances = classeur.getSheetByName('Capa '+pD)
    var limiteSupD = feuilleTolerances.getRange('I38').getValue()
    var limiteInfD = feuilleTolerances.getRange('I39').getValue()
    // chargement des données et boucle sur celles-ci
    var releve = feuilleD.getRange('D'+i+':Z'+i).getValues()
    for (var n=0;n<releve[0].length;n++){
      if ( releve[0][n]!='' && ( (releve[0][n]<=limiteInfD) || (releve[0][n]>=limiteSupD) ) ){
        texte += releve[0][n] + ' le ' + jour[0][n] + ' à ' + heure[0][n] + '\n'
      }
    }
    // envoi d'un mail par Px
    if (texte!='') {GmailApp.sendEmail(email, 'Message d\'alerte', 'Valeur hors limite de surveillance sur "' + pD + '"'  + '\n' + texte)}
  }
}    

J'ai essayé ce programme, la fonction envoi fonctionne mais la OnEdit non. (Ce programme c'est dans le cas ou la partie gauche et droite se trouve sur la même feuille CAPA)

Bonjour ...

est-ce que function onEdit(event) est encore utile puisque tu as aussi function envoi()


bon, le mieux est de se focaliser sur une fonction d'abord, je vais prendre function envoi() qui me semble plus logique et claire

oui, en effet, c'est ce que j'avais dit : on regarde d'abord la fonction envoi, ensuite on pourra reprendre onEdit si c'est utile

je vais regarder dans la journée, mais je n'ai pas bien compris son utilité ... je pense qu'il faudrait plutôt faire une fonction envoiBis si la seule différence est que les parties droite et gauche se trouvent sur la même feuille

La fonction OnEdit me permet d'ajouter un déclencheur. Je vous remercie

On peut ajouter un déclencheur sur n'importe quelle fonction.

onEdit n'en a pas besoin "habituellement", et cette fonction a la particularité de s'activer dès qu'une cellule est modifiée manuellement. On y ajoute ici un déclencheur car elle envoie un email

Le fichier que j'ai en lien n'a pas d'onglet CAPA, pourrais-tu le rajouter tel que tu le vois ? https://docs.google.com/spreadsheets/d/12qbYat7Te8tcNtp1RuXslvWTeemI03gq6yTGAqdzwzA/edit#gid=4370661...

Ah j'avais pas compris merci pour l'explication. J'ai créé la feuille CAPA.

Merci

Bonjour,

je vois apparaître en fait des groupes de données Px Gauche et Px Droite !! j'en conclus que c'est donc quasiment la même chose que dans les onglets avec séparation des données.

il n'y a pas de données dans la feuille CAPA => difficile de faire des tests

Il y 'a des données qui existent sur la feuille CAPA, mais sauf que les feuilles Capa Px gauche et Capa Px droite n'existe pas. Je crois que je vais nommer juste dans le script Capa Px directement vu que dans certains classeurs il y 'en aura juste un mais en partie gauche et droite.

Merci.

function envoi() {
  var classeur = SpreadsheetApp.getActiveSpreadsheet();
  var email = '*****************'

  // partie Gauche ====================
  var feuilleG = classeur.getSheetByName('CAPA');
  // chargement des données calendaires et horaires
  var jourG = feuilleG.getRange('D6:Z6').getDisplayValues()
  var heureG = feuilleG.getRange('D7:Z7').getDisplayValues()

  // boucle sur les lignes
  for (var i=8; i<=feuilleG.getLastRow();i=i+20){
    // valeur de Px : P1,P2 ... Poids utiles pour aller chercher les limites
    var pG = feuilleG.getRange('A'+i).getValue()
    var feuilleTolerances = classeur.getSheetByName('Capa PX Gauche')
    var limiteSupg = feuilleTolerances.getRange('H38').getValue()
    var limiteInfg = feuilleTolerances.getRange('H39').getValue()
    // chargement des données et boucle sur celles-ci
    var texteG = ''
    var releveG = feuilleG.getRange('D'+i+':Z'+i).getValues()
    for (var n=0;n<releveG[0].length;n++){
      if (releveG[0][n]!='' && ((releveG[0][n]<=limiteInfg) || (releveG[0][n]>=limiteSupg) )) { 
        texteG += releveG[0][n] + ' le ' + jourG[0][n] + ' à ' + heureG[0][n] + '\n'
      }
    }
    // envoi d'un mail par Px
    if (texte!='') {MailApp.sendEmail(email, 'Message d\'alerte', 'Valeur hors limite de surveillance sur "' + pG +'" ' + '\n' + texteG)}
  }

  // partie Droite ====================
  var feuilleD = classeur.getSheetByName('CDS');
  // chargement des données calendaires et horaires
  var jour = feuilleD.getRange('D6:Z6').getDisplayValues()
  var heure = feuilleD.getRange('D7:Z7').getDisplayValues()

  // boucle sur les lignes
  for (var i=8; i<=feuilleD.getLastRow(); i=i+20){
    var texte = ''
    // valeur de Px : P1,P2 ... Poids utiles pour aller chercher les limites
    var pD = feuilleD.getRange('A'+i).getValue()
    var feuilleTolerances = classeur.getSheetByName('Capa PX Droite')
    var limiteSupD = feuilleTolerances.getRange('I38').getValue()
    var limiteInfD = feuilleTolerances.getRange('I39').getValue()
    // chargement des données et boucle sur celles-ci
    var texte = ''
    var releve = feuilleD.getRange('D'+i+':Z'+i).getValues()
    for (var n=0;n<releve[0].length;n++){
      if (releve[0][n]!='' && ((releve[0][n]<=limiteInfD) || (releve[0][n]>=limiteSupD) )) { 
        texte += releve[0][n] + ' le ' + jour[0][n] + ' à ' + heure[0][n] + '\n'
      }
    }
    // envoi d'un mail par Px
    if (texte!='') {MailApp.sendEmail(email, 'Message d\'alerte', 'Valeur hors limite de surveillance sur "' + pD + '" ' + '\n' + texte)}
  }
}

J'ai essayé avec ce script en créant les feuilles Capa PX Gauche et Capa PX Droite mais je reçois des messages en plus. Pouvez vous m'aider s'il vous plait à ne recevoir que le nombre exacte de message? merci

function envoi() {
  var classeur = SpreadsheetApp.getActiveSpreadsheet();
  var email = '*****************'

  // partie Gauche ====================
  var feuilleG = classeur.getSheetByName('CAPA');
  // chargement des données calendaires et horaires
  var jourG = feuilleG.getRange('D6:Z6').getDisplayValues()
  var heureG = feuilleG.getRange('D7:Z7').getDisplayValues()

  // boucle sur les lignes
  for (var i=8; i<=feuilleG.getLastRow();i=i+20){
    // valeur de Px : P1,P2 ... Poids utiles pour aller chercher les limites
    var pG = feuilleG.getRange('A'+i).getValue()
    var feuilleTolerances = classeur.getSheetByName('Capa PX Gauche')
    var limiteSupg = feuilleTolerances.getRange('H38').getValue()
    var limiteInfg = feuilleTolerances.getRange('H39').getValue()
    // chargement des données et boucle sur celles-ci
    var texteG = ''
    var releveG = feuilleG.getRange('D'+i+':Z'+i).getValues()
    for (var n=0;n<releveG[0].length;n++){
      if (releveG[0][n]!='' && ((releveG[0][n]<=limiteInfg) || (releveG[0][n]>=limiteSupg) )) { 
        texteG += releveG[0][n] + ' le ' + jourG[0][n] + ' à ' + heureG[0][n] + '\n'
      }
    }
    // envoi d'un mail par Px
    if (texte!='') {MailApp.sendEmail(email, 'Message d\'alerte', 'Valeur hors limite de surveillance sur "' + pG +'" ' + '\n' + texteG)}
  }

  // partie Droite ====================
  var feuilleD = classeur.getSheetByName('CAPA');
  // chargement des données calendaires et horaires
  var jour = feuilleD.getRange('D6:Z6').getDisplayValues()
  var heure = feuilleD.getRange('D7:Z7').getDisplayValues()

  // boucle sur les lignes
  for (var i=8; i<=feuilleD.getLastRow(); i=i+20){
    var texte = ''
    // valeur de Px : P1,P2 ... Poids utiles pour aller chercher les limites
    var pD = feuilleD.getRange('A'+i).getValue()
    var feuilleTolerances = classeur.getSheetByName('Capa PX Droite')
    var limiteSupD = feuilleTolerances.getRange('I38').getValue()
    var limiteInfD = feuilleTolerances.getRange('I39').getValue()
    // chargement des données et boucle sur celles-ci
    var texte = ''
    var releve = feuilleD.getRange('D'+i+':Z'+i).getValues()
    for (var n=0;n<releve[0].length;n++){
      if (releve[0][n]!='' && ((releve[0][n]<=limiteInfD) || (releve[0][n]>=limiteSupD) )) { 
        texte += releve[0][n] + ' le ' + jour[0][n] + ' à ' + heure[0][n] + '\n'
      }
    }
    // envoi d'un mail par Px
    if (texte!='') {MailApp.sendEmail(email, 'Message d\'alerte', 'Valeur hors limite de surveillance sur "' + pD + '" ' + '\n' + texte)}
  }
}

'ai essayé avec ce script en créant les feuilles Capa PX Gauche et Capa PX Droite mais je reçois des messages en plus. Pouvez vous m'aider s'il vous plait à ne recevoir que le nombre exacte de message? merci

Et je pense que ce problème est du au fait que j'écrive feuilleD et feuilleG tandis qu'elles ont le même rôle.
Rechercher des sujets similaires à "envoi mail valeur pas compris intervalle"