1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
| var EVENT_IMPORTED = "AJOUTE"; // Ajoutera le texte "AJOUTE" dans la colonne Y
var ss = SpreadsheetApp.getActiveSpreadsheet();
function onOpen() {
var menuEntries = [{name: "Ajouter les événements à l'agenda", functionName: "importCalendar"}];
ss.addMenu("Agenda", menuEntries); // Pour ajouter une menu Agenda et un sous-menu "ajouter les événements" dans la feuille de calcul. Cela permettra de tester manuellement la liaison entre la feuille de calcul et l'agenda
}
function importCalendar() {
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getDataRange();
var startrow = 2; // Première ligne de prise en compte des données
var startcolumn = 2; // Première colonne de prise en compte des données, soit la colonne B (titre du rendez-vous)
var numrows = range.getLastRow(); // Nombre de lignes
var numcolumns = range.getLastColumn(); // Nombre de colonnes
var data = sheet.getRange(startrow, startcolumn, numrows-1, numcolumns).getValues(); // Plage contenant des données
for (var i = 0; i < numrows-1; ++i) {
var column = data[i];
var Horodateur = column[0]; // Colonne B - Titre de l'événement dans l'agenda - Titre du rendez-vous
var DateDebut = column[7]; // Colonne g - date
var DateFin = column[8]; // Colonne h - date
var Choisirlassociation = column[2]; // Colonne E - événement sur la journée
var Emaildelassociation = column[4]; // Colonne F - description de l'événement
var personneresponsable = column[5]; // Colonne G - lieux de l'événement
var Ustensilesetmachines = column[6]; // Colonne H - statut privé / public de l'événement
var platsinox = column[7]; // Colonne I - Rappel n°1
var eventImported = column[9]; // Colonne S - Statut de l'importation - colonne AJOUTE A L'AGENDA
var Description_complete = Choisirlassociation + "\nRessources : " + Ustensilesetmachines + "\nDisponibilité : " + platsinox // concatenation des champs destinés à la zone Description de l'agenda
var calendarName = sheet.getRange(numrows,1,numrows,1).getValue(); // Référence de la cellule contenant le nom de l'agenda
var cal = CalendarApp.openByName(SportLoisirsCouzeixois);
if (EvtJournee == "VRAI"){ //évènement sur la journée
evt = SportLoisirsCouzeixois.createAllDayEvent(Choisirlassociation, new Date(DateDebut), {description: Description_complete, location: Lieux, guests: Participants});} // Création de l'événement dans l'agenda
else evt = SportLoisirsCouzeixois.createEvent(Choisirlassociation, new Date(DateDebut), new Date(DateFin), {description: Description_complete, location: Lieux, guests: Participants}); // Création de l'événement dans l'agenda
//visibilité de l'évènement
switch(Private){
case "PRIVATE" :
evt.setVisibility(CalendarApp.Visibility.PRIVATE);
break;
case "PUBLIC" :
evt.setVisibility(CalendarApp.Visibility.PUBLIC);
break;
case "CONFIDENTIAL" :
evt.setVisibility(CalendarApp.Visibility.CONFIDENTIAL);
break;
default :
evt.setVisibility(CalendarApp.Visibility.DEFAULT);
}
//Rappels
if (Rappel1 == "VRAI"){ // rappel n°1
if (Rappel1Type == "NOTIF"){
evt.addPopupReminder(Rappel1Min);}
if (Rappel1Type == "EMAIL"){
evt.addEmailReminder(Rappel1Min);}
}
if (Rappel2 == "VRAI"){ // rappel n°2
if (Rappel2Type == "NOTIF"){
evt.addPopupReminder(Rappel2Min);}
if (Rappel2Type == "EMAIL"){
evt.addEmailReminder(Rappel2Min);}
}
sheet.getRange(startrow + i, numcolumns).setValue(EVENT_IMPORTED); // Nombre de colonne contenant des données
SpreadsheetApp.flush();
}
} |
Partager