J'essaie d'ajuster ce code afin de pouvoir passer à la date d'aujourd'hui, qui se trouve sur la ligne 2 de ma feuille de calcul.
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var range = sheet.getRange("A:A");
var values = range.getValues();
var day = 24*3600*1000;
var today = parseInt((new Date().setHours(0,0,0,0))/day);
var ssdate;
for (var i=0; i<values.length; i++) {
try {
ssdate = values[i][0].getTime()/day;
}
catch(e) {
}
if (ssdate && Math.floor(ssdate) == today) {
sheet.setActiveRange(range.offset(i,0,1,1));
break;
}
}
}
cette réponse vient de Guimauve
J'ai essayé de changer sheet.getRange("A:A")
en sheet.getRange("2:2")
et sheet.getRange("C2:PB2")
mais aucun des deux ne fonctionne.
essayez ce code:
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var range = sheet.getRange("2:2");
var values = range.getValues();
values = values[0];
var day = 24*3600*1000;
var today = parseInt((new Date().setHours(0,0,0,0))/day);
Logger.log(today);
var ssdate;
for (var i=0; i<values.length; i++) {
try {
ssdate = values[i].getTime()/day;
}
catch(e) {
}
if (ssdate && Math.floor(ssdate) == today) {
sheet.setActiveRange(range.offset(0,i,1,1));
break;
}
}
}
Qu'est-ce qui a changé:
sheet.getRange("2:2");
comme vous l'avez faitvalues = values[0];
obtenir la première ligne de donnéessheet.setActiveRange(range.offset(0,i,1,1));
offset sur les colonnesSi vos dates figurent dans la colonne A et que vous souhaitez que votre fichier soit ouvert à la ligne d'aujourd'hui:
Dans votre feuille Google: ajoutez ceci dans la cellule A1: =match(TODAY();A2:A;0)+1
Elle renverra le numéro de ligne contenant la date du jour (ex: ligne 154).
Dans l'éditeur de script, écrivez ce code qui placera automatiquement votre curseur sur la cellule A154:
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getSheetByName("Sheet1"); // change to sheet containing dates
var r = s.getRange("A1").getValue(); //change A1 to cell containing =match formula
s.setActiveSelection(s.getRange("A" + r ));
}
Cette méthode simple évite beaucoup d’analyses et de conversions de dates (Toute la gloire à GimelC )