Saisir la date du jour (et la figer) si d'autres case sont remplies

Bonjour a tous, je suis nouveau sur le forum.

J'ai normalement des bonnes connaissances de bases en Excel mais la je me lance dans quelque chose de compliqué. Je touche un peu à tous les logiciels, mais en ce moment surtout a Numbers et Sheets. Je fais actuellement mon gros projet sur Sheets

Mon objectif est de me créer un tableur très complet de gestion des stocks, avec journal des achats, ventes et de précommande. J'ai la base de créée, avec toutes mes idées en tête, il me reste juste à les traduire grâce à des formules et ca c'est une autre affaire ...

Mon premier blocage est le suivant. Dans différentes feuilles, je dois saisir des dates, sachant que ces dates sont censés être celles des dates de saisie dans 95% des cas j'aimerais l'automatiser.

J'étais donc parti sur quelque chose du style : B4 =SI(H4="";"";AUJOURDHUI())

Mon soucis est que la formule aujourd'hui s'actualise, mon objectif est de "figer" cette date lors de la saisie je ne sais donc pas comment faire

Bonjour,

Dans ce cas, passe par un script très simple qui indiquera la date du jour dès lors que tu saisis une donnée à un endroit précis.

Exemple : date du jour figée sur cellule D1 quand une donnée est introduite en C1 de la feuille "maFeuille"

function onEdit(event){
  var sh = event.source.getActiveSheet();
  var cel = event.source.getActiveRange();
  if (sh.getName()=='maFeuille' && cel.getA1Notation()=='C1'){
    cel.offset(0,1).setValue(new Date()).setNumberFormat("dd/MM/yyyy");
  }
}

Merci beaucoup pour votre réponse.

Ou dois je saisir ce script ?

et comment faire pour le tirer sur la colonne entière ? Le but étant de dupliquer ceci sur potentiellement une infinité de ligne (500 pour commencer)

Pour saisir le script,

  • vas dans le menu Extensions >> Apps Script et remplace ce qui est proposé par ce script
  • modifie en fonction de tes besoins
  • puis enregistre.

Pour l'appliquer sur ton projet, modifie ceci

if (sh.getName()=='maFeuille' && cel.getA1Notation()=='C1')

par exemple

en testant la colonne par cel.getColumn()
en testant la ligne par cel.getRow()

et en indiquant aussi là où tu veux mettre cette date.

Mets un lien vers une copie simplifiée de ton projet comme suit https://www.sheets-pratique.com/fr/cours/partage

Voici un lien en lecture simple : https://docs.google.com/spreadsheets/d/1H4CWozmLNLwmmMo2KNWC7_jCVxgwkDyxM7sZbnwU-FA/edit#gid=1250971...

J'ai pu mettre le script pour mes 3 feuilles, il fonctionne bien mais seulement pour la première ligne. Dans ce script je dois mal utiliser "cel.getColumn()" car quand j'essaye de l'appliquer dans le script alors plus rien ne se passe

Première remarque, il ne peut y a voir qu'une seule fonction onEdit, il faut donc "compiler" le tout

function onEdit(event){
  var sh = event.source.getActiveSheet();
  var cel = event.source.getActiveRange();
  if (sh.getName()=='Précommande' && cel.getA1Notation()=='H4'){
    cel.offset(0,-5).setValue(new Date()).setNumberFormat("dd/MM/yyyy");
  }

  else if (sh.getName()=='Journal des ventes' && cel.getA1Notation()=='E4'){
    cel.offset(0,-2).setValue(new Date()).setNumberFormat("dd/MM/yyyy");
  }

  else if (sh.getName()=='Journal des achats' && cel.getA1Notation()=='E4'){
    cel.offset(0,-3).setValue(new Date()).setNumberFormat("dd/MM/yyyy");
  }

  else if (sh.getName()=='Journal des ventes' && cel.getColumn()=='E5'){
    cel.offset(0,-2).setValue(new Date()).setNumberFormat("dd/MM/yyyy");
  }

}

Exemple avec cel.getColumn() et cel.getRow() pour une feuille donnée

function onEdit(event){
  var sh = event.source.getActiveSheet();
  var cel = event.source.getActiveRange();
  if (sh.getName()=='Précommande' && cel.getColumn()==8 && cel.getRow()>=4 && cel.getRow()<=5){ // 8 = colonne H
    cel.offset(0,-5).setValue(new Date()).setNumberFormat("dd/MM/yyyy");
  }
}

C'est bon j'ai réussi merci, j'ai laissé la formule "cel.getRow()" en adaptant jusqu'a la 500e ligne pour l'instant. Mais si je la supprime, dès lors que je ne touche pas au titre de mon tableau cela ne posera pas de soucis ?

Petite question, si je télécharge mon sheets en version excel, le script sera également conservé ou je devrais le faire de nouveau ?

Encore merci pour votre aide, je vais essayer de finir mon tableau petit a petit

Petite question, si je télécharge mon sheets en version excel, le script sera également conservé ou je devrais le faire de nouveau ?

Rien à voir, la langage VBA est un langage "propriétaire" microsoft très spécifique.

Rechercher des sujets similaires à "saisir date jour figer case remplies"