Pour le formulaire en boite de dialogue
// ceci est pour traiter les réponses au formulaire "boite de dialogue"
function ajouter(tab) {
var planning = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Planning')
var salaries = planning.getRange('B:B').getValues().flat()
var dates = planning.getRange('15:15').getDisplayValues().flat()
var ligne = salaries.indexOf(tab[0]) + 1
var debut = Utilities.formatDate(new Date(tab[2]), Session.getScriptTimeZone(), "dd MMM");
var du = dates.indexOf(us2fr(debut)) + 1
var fin = Utilities.formatDate(new Date(tab[3]), Session.getScriptTimeZone(), "dd MMM");
var au = dates.indexOf(us2fr(fin)) + 1
if (au == 0) { au = du }
if (du == 0 || ligne == 0) { return }
for (var i = du; i <= au; i++) { planning.getRange(ligne, i).setValue(tab[1]) }
}
function us2fr(date) {
moisUS = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
moisFR = ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.']
return date.replace(date.substring(3), moisFR[moisUS.indexOf(date.substring(3))])
}
Il faut compléter là encore les listes déroulantes
<select name="nom" id="nom" onchange="changeColor(this);">
<option value="" disabled selected >Choisir ...</option>
<option value="Sébastien" >Sébastien</option>
<option value="Yannick" >Yannick</option>
<option value="Jean Louis" >Jean Louis</option>
<option value="Caroline" >Caroline</option>
</select>
<p>Congé</p>
<select name="motif" id="motif" onchange="changeColor(this);">
<option value="" disabled selected >Choisir ...</option>
<option value="RTT" >RTT</option>
<option value="F" >F</option>
</select>
et si tu reproduis cela dans un autre fichier, veiller au respect de ta time zone dans appscript.json que l'on peut faire apparaître en cochant la 3ème checkbox dans les paramètres du projet (voir icone engrenage à gauche)
{
"timeZone": "Europe/Paris",
"dependencies": {
},
"exceptionLogging": "STACKDRIVER",
"runtimeVersion": "V8"
}