| 12
 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