Bonjour à tous
Je gère un tableau de gestion et j'ai un onglet qui est l'equivalent d'un relevé de compte.
J'utilise un script que me permet de fusionner toutes les cellule de valeur identique dans une colonne que j'execute manuellement.
Dans un tableau B28:N, rangé par date(B), dont la plage B28:M se rempli via plusieurs imports avec QUERY, la colonne B contient des dates d'operation et la colonne N reprend le mois et l'année de la date de la colonne B grace a une formule en ARRAYFORMULA en N27. La voici:
={"Période / Mois";ARRAYFORMULA(SI($B$26:$B<>"";TEXTE($B26:$B;"mmm")&CAR(10)&TEXTE($B$26:$B;"yyy");""))}
Mon problème est que quand les cellules de la colonne M sont fusionnées correctement et qu'une ligne s'ajoute et que j'execute le script, la fusion se fait de façon bizarre.
Je voudrais que automatiquement quand une nouvelle ligne s'ajoute, le script annule la fusion, reformatté les lignes de separation verticales et refusionné.
Voici mon sheet (problème onglet "BANQUE"):
Voici mon script:
function myFunction() {
var start = 28; // Start row number for values.
var c = {};
var k = "";
var offset = 0;
var ss = SpreadsheetApp.getActiveSheet();
// Retrieve values of column B.
var data = ss.getRange(start, 14, ss.getLastRow(), 1).getValues().filter(String);
// Retrieve the number of duplication values.
data.forEach(function(e){c[e[0]] = c[e[0]] ? c[e[0]] + 1 : 1;});
// Merge cells.
data.forEach(function(e){
if (k != e[0]) {
ss.getRange(start + offset, 14, c[e[0]], 1).merge();
offset += c[e[0]];
}
k = e[0];
});
}
Merci d'avance.