Si (condition) = affiche la date du jour

Merci Pierre pour votre aide :)

Je viens de positionner votre code ce cette manière :

Cela ne dois pas être bon car la date ne s'affiche plus.

image

Je n'ai d'ailleurs pas compris la fin de votre explication désolé :(

"Attention toutefois, cela fait tourner ce code dans une majorité de cas pour rien, il faudrait peut-être dans ce cas générer une liste data "oui" et une liste de data "non"

Puis faire des boucles dessus afin d'optimiser le fonctionnement de ce code et ainsi, gagner du temps. "

function onEdit(e)
{
var cel = SpreadsheetApp.GetActiveSpreadsheet().getActiveSheet();
var startRow = 0;
var numRows = 500;
var dataRange = cel.getRange("H2");
if (dataRange.getValue = 'oui');
{
    var d = Utilities.formatDate(new Date(), "GMT", "dd/MM/yyyy");
    cel.getRange("i2").setValue(d);
 }
if (dataRange.getValue ='non');
{
    cel.getRange("I2").clearContent();
}}

Il n'est pas optimum, car dans tous les cas il va tourner et faire des actions (ou bien insérer des dates ou bien supprimer des espaces (vide dans la plupart des cas).

Voyez déjà si ça fonctionne, l'optimisation se fait dans un 2nd temps.

J'ai le même résultat, la date ne s'affiche pas.

J'ai un fichier test si vous voulez

https://docs.google.com/spreadsheets/d/1jCoWB18y2vXlbQ3A7fsRyNKflzNj6-W9R8SV0-OYOUI/edit#gid=0

... C'était tout bête, à force de changer de langue on s'y perd...

Dans Google App Script, pour dire = il faut écrire ==

function onEdit()
{
var cel = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var startRow = 0;
var numRows = 500;
var dataRange = cel.getRange("H2").getValue();
var destRange = cel.getRange("I2");
if (dataRange == 'non'){
  destRange.clear()
 }
else if (dataRange == 'oui'){
    var d = Utilities.formatDate(new Date(), "GMT", "dd/MM/yyyy");
    destRange.setValue(d);
 } 

}

Le résultat revient à celui de toute à l'heure, peut importe la référence en H la date se met par défaut sur toutes la colonne I.

Chez moi ça fonctionne,

Lorsque j'ai non en H2 rien ne se passe

Si je mets oui en H2 la date s'ajoute

Si je remplace oui par non en H2 la date s'efface.

Ha en effet c'est la liste déroulante qui ne fonctionne pas .....

Par contre j'ai essayé d'appliquer le script sur plusieurs cellule et j'applique la date sur toutes les cellules en même temps.

Je pense que définir une plage dans le script comme une formule il aime pas.

image

En effet, il faut faire une liste et boucler dessus, je ne vais pas avoir le temps de réaliser ce code, mais voici ce qu'il faut faire :

1 - faire une liste qui comporte toutes les conditions (colonne H) (avec par ex avec : lastRow)

2 - faire une boucle qui teste chacune des conditions de la liste et qui insère la réponse et qui s'incrémente jusqu'à arriver au bout de la liste :

for (var i=0;i< liste des conditions.length;i++){
cel.getRange(2+i,9).setValue(INSERER ICI le test IF

Je crois que je vais plutôt faire une casse à cocher , car a première vue je n'ai pas les compétences pour faire le script..

Merci beaucoup Pierre pour le temps accordé sur le script.

Avec une cache a cocher cela fonctionne super bien.

Rechercher des sujets similaires à "condition affiche date jour"