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
| var EVENT_IMPORTED = "AJOUTE"; // Ajoutera le texte "AJOUTE" dans la colonne M
var ss = SpreadsheetApp.getActiveSpreadsheet();
function onOpen() {
var menuEntries = [{name: "Ajouter les événements à l'agenda", functionName: "importCalendar"}];
ss.addMenu("Agenda", menuEntries); // Pour ajouter un 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 startcolumn = 2; // Première colonne de prise en compte des données, soit la colonne B (titre du rendez-vous)
var numcolumns = 26; // Nombre de colonne
var dataRange = sheet.getRange(startcolumn, 1, numcolumns, 13) // Nombre de colonne contenant des données
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var column = data[i];
var pseudo = column[1]; // Colonne B - Titre de l'événement dans l'agenda
var departaller = column[2]; // Colonne C - lieu de départ
var arrivaller = column[3]; // Colonne D - lieu d'arrivée
var titre = "Concurrent :"+ pseudo +"\r"+"-"+"\rTrajet :"+ departaller +" "+"/"+" "+arrivaller;
var dateDep1 = column[4]; // Colonne E - date de début de départ
var dateDep2 = column[5]; // Colonne F - date de fin de départ
var vitesse = column[6]; // Colonne G - Vitesse
var vetype = column[7]; // Colonne H - Type
var email = column[8]; // Colonne I - Adresse email
var numTel = column[9]; // Colonne J- Téléphone
var comment = column[10]; // Colonne K - commentaire Description
var permis = column[11]; // Colonne L - Téléphone
var description = "<FONT COLOR='blue'>Type :</FONT> "+ vetype +"\r<FONT COLOR='blue'>Vitesse :</FONT> "+ vitesse +" "+"km/h"+"\r<FONT COLOR='blue'>Commentaire :</FONT>"+ comment +"\r<FONT COLOR='blue'>me joindre par téléphone :</FONT> "+ numTel +"\r<FONT COLOR='blue'>par email : </FONT>"+ email // concatenation des champs destinés à la zone Description de l'agenda
var eventImported = column[12];// Colonne M - Statut de l'importation - colonne AJOUTE A L'AGENDA
var setupInfo = ss.getSheetByName("agenda"); // Nom de la feuille de calcul contenant la nom de l'agenda
var calendarName = setupInfo.getRange("A1").getValue(); // Référence de la cellule contenant le nom de l'agenda
if (eventImported != EVENT_IMPORTED && titre != "") { // Evite les doublons dans l'agenda, si le texte AJOUTE est présent en M, l'événement n'est pas ajouté
var cal = CalendarApp.openByName(calendarName);
cal.createEvent(titre, new Date(dateDep1), new Date(dateDep2), {description : description}); // Création de l'événement dans l'agenda avec le titre, les dates de départ et d'arrivée, la description complète
sheet.getRange(startcolumn + i, 13).setValue(EVENT_IMPORTED); // Nombre de colonne contenant des données
SpreadsheetApp.flush();
}
}
} |
Partager