Attention : il y a des changements dans la feuille Affaire ... ajout du n° et des checkboxes
J'ai terminé le moteur.
Je te laisse faire la carrosserie ? notamment la MFC selon le statut ?
/** @OnlyCurrentDoc */
function retour() {
basculerVers(0,'A1');
};
function nouvelleAffaire() {
basculerVers(1,'E7');
};
function listeAffaires() {
basculerVers(2,'A1');
};
function enregistrerNouvelleAffaire() {
var doc = SpreadsheetApp.getActiveSpreadsheet();
var f1 = SpreadsheetApp.getActive();
var nouveau = 'Affaire-' + f1.getRange('E10').getValue().toString();
var f3 = doc.getSheetByName(nouveau);
if (!f3){
f1.setActiveSelection('F16');
var n = f1.getRange('H16').getValue() ;
if (n == 7) {
var f2 = doc.getSheetByName('Liste des affaires');
var derL = f2.getLastRow() +1;
var adresses = ["E7","H7","E10","H10","E13","H13","E16"];
var destination = ["B","C","D","E","F","G","H"];
var titre = f1.getRange('H7').getValue();
var num = f1.getRange('E10').getValue();
for (var i = 0; i < adresses.length; i++){
f2.getRange(destination[i] + derL).setValue(f1.getRange(adresses[i]).getValue());
f1.getRange(adresses[i]).clearContent();
}
var fa = doc.getSheetByName('Affaire');
newf = fa.copyTo(doc).setName(nouveau);
newf.getRange('F2').setValue(titre);
newf.getRange('B5').setValue(num);
basculerVers(doc.getSheetByName(nouveau).getIndex() - 1,'E6');
} else {
Browser.msgBox('Merci de rensseigner tous les champs !');
f1.setActiveSelection('E7');
}
} else {
Browser.msgBox('Cette affaire existe déjà !');
}
};
function voirAffaire(){
var doc = SpreadsheetApp.getActiveSpreadsheet();
var f = doc.getActiveSheet();
var r = f.getActiveRange();
var numAffaire = 'Affaire-' + r.getValue().toString();
var fa = doc.getSheetByName(numAffaire);
if (fa){
basculerVers(fa.getIndex() - 1,'E6');
}
};
function basculerVers(n,r){
var doc = SpreadsheetApp.getActiveSpreadsheet();
var f1 = doc.getSheets()[n];
var f2 = doc.getActiveSheet();
f1.showSheet();
doc.setActiveSheet(f1);
f1.setActiveSelection(r);
f2.hideSheet();
}
function onEdit(event){
var doc = SpreadsheetApp.getActiveSpreadsheet();
var f = event.source.getActiveSheet();
var r = event.source.getActiveRange();
if (f.getName() == 'Ajouter une nouvelle affaire'){
if (r.getValue() != ''){
var adresses = ["E7","H7","E10","H10","E13","H13","E16"];
var valeurs = adresses.join().split(",");
var item = valeurs.indexOf(r.getA1Notation());
if (item < adresses.length - 1){ // sauf le dernier
f.setActiveSelection(adresses[item + 1]);
}
}
} else if (f.getName().substring(0,8) == 'Affaire-'){
var val = r.getValue();
var row = r.getRow();
var col = r.getColumn();
if (col == 1 || row >= 6 || row <= 8) {
var fa = doc.getSheetByName('Liste des affaires');
var values = fa.getRange('D7:D').getValues().join().split(",");
var ligne = values.indexOf(f.getRange('B5').getValue().toString());
if (ligne != -1) {
if (val) {
fa.getRange('I' + (ligne+7)).setValue(f.getRange('B' + row).getValue());
for (var i = 6; i <= 7; i++){
if (i != row){
f.getRange(i,1).setValue('FALSE');
}
}
} else {
fa.getRange('I' + (ligne+7)).setValue('');
}
}
}
}
}
function finaliser(){
var doc = SpreadsheetApp.getActiveSpreadsheet();
var f = doc.getActiveSheet();
if (f.getName().substring(0,8) == 'Affaire-'){
var fa = doc.getSheetByName('Liste des affaires');
var values = fa.getRange('D7:D').getValues().join().split(",");
var ligne = values.indexOf(f.getRange('B5').getValue().toString());
if (ligne != -1) {
fa.getRange('I' + (ligne+7)).setValue('Finalisée');
basculerVers(2,'A1');
doc.deleteSheet(f);
}
}
}