Fichier de commande avec date lors de l'activation de la commande
Bonjour,
Je suis actuellement en stage et j e suis en train de faire un sheets qui permet de passer des commandes plus facilement avec les informations de la commande etc,...
Le problème est que j'ai créée une fonction permettant de mettre la date automatiquement quand la commande change de statut grâce à un menu déroulant par exemple quand la commande est réceptionné : SI(A4="Réceptionné";AUJOURDHUI();J1).
Sauf qu'avec cette fonction je ne peux avoir le moment où la commande est réceptionné vu que la date se réactualisera le lendemain et je ne peux également pas avoir 2 dates en même temps.
Je m'explique, je souhaiterais que quand je change le statut de la commande en "Commandé" la date du jour où le changement de statut entre "À commander " et "Commandé" a été fait se mette dans une case "date de commande". Cependant j'aimerais effectuer la même fonction quand la commande est réceptionné sauf que quand je change le statut ça supprime la "date de la commande".
Je ne sais pas si j'ai été clair, je n'ai que très peu de compétences en programmation surtout sur app scripts.
Merci de votre compréhension et en espérant avoir un retour.
Bonjour,
Voici un fichier, j'ai mis des cases à cocher, quand une case est cochée, la date et l'heure se mettent à droite.
+ J'ai ajoutée une 2nd petite fonction qui protège la ligne jusqu'à la date, afin d'éviter que des petits malins modifient les données à posteriori (tu peux aisément retirer cette fonctionnalité en supprimant la 2nd fonction).
https://docs.google.com/spreadsheets/d/1cD5mpskQapj6tPijHlljrNFo6Z9szKvNpldG9QaosVM/edit?usp=sharing
+ voici le détail du script utilisé : je n'ai pas commenté car fait en speed mais si besoin je peux expliquer plus dans le détail.
function onEdit(e) {
var sheet = e.source.getActiveSheet();
var range = e.range;
var col = range.getColumn()
var row = range.getRow()
if ((col == 4 ||col == 6 || col == 8 ) && range.isChecked) {
var timestampCell = sheet.getRange(row, col + 1);
var timestamp = new Date();
var formattedTimestamp = Utilities.formatDate(timestamp, Session.getScriptTimeZone(), 'dd/MM/yyyy - HH:mm');
timestampCell.setValue(formattedTimestamp);
}
protectRow(sheet,col,row)
}
function protectRow(sheet,col,row){
var lastProtectedColumn;
if (col == 4) {
lastProtectedColumn = 5;
} else if (col == 6) {
lastProtectedColumn = 7;
} else if (col == 8) {
lastProtectedColumn = 9;
}
sheet.getRange(row, 1, 1, lastProtectedColumn).protect();
}Bonjour,
Je pensais plutôt utiliser un système avec liste déroulante pour une question de visibilité et de simpliciter.
Voici à quoi ressemble le fichier (je ne peux pas l'envoyer malheureusement):
Je ne sais donc pas si votre programme peut fonctionner sur ce fichier et je ne sais également pas comment l'adapter a mon fichier.
De plus je ne sais pas si c'est possible mais j'aimerais bien faire en sorte que dès qu'on a soit cliquer sur le bouton réinitialiser soit en changeant le statut de la commande que la ligne s'archive das un autre document sheets pour faire un historique des commandes.