Me gustaría hacer un script que establezca una nota en cada celda que tenga un valor específico.
Hice un script que crea una nueva regla de formato condicional para colorear las celdas en función de su valor:
function couleurs() { var ss = SpreadsheetApp.getActive(); var NP = ss.getSheetByName("Network Patching"); var VLANS = ss.getSheetByName("VLANS"); var conditionalFormatRules = NP.getConditionalFormatRules(); let listeVlansIDBrute = VLANS.getRange(3,6, VLANS.getLastRow(),3).getValues(); //On recupere les valeurs des cellules dans la plage donnée. let listeCouleursBrute = VLANS.getRange(3,6, VLANS.getLastRow(),1).getBackgrounds(); let listeFontColor = VLANS.getRange(3,6, VLANS.getLastRow(),1).getFontColors(); conditionalFormatRules.splice(0, conditionalFormatRules.length) console.log(listeVlansIDBrute) console.log(listeCouleursBrute) for(let i=0; i<listeVlansIDBrute.length;i++) { if(listeVlansIDBrute[i][0]!=""&& listeVlansIDBrute[i][0]!=null && listeVlansIDBrute[i][3]!="" && listeCouleursBrute[i]!="#ffffff") { NP.getRange(1,1, NP.getLastRow(), NP.getLastColumn()).activate(); NP.setConditionalFormatRules(conditionalFormatRules); conditionalFormatRules = NP.getConditionalFormatRules(); conditionalFormatRules.splice(0, 0, SpreadsheetApp.newConditionalFormatRule().setRanges([NP.getRange(1,1, NP.getLastRow(), NP.getLastColumn())]) .whenTextEqualTo(listeVlansIDBrute[i][0]).setBackground(listeCouleursBrute[i]).setFontColor(listeFontColor[i]).build()); } } NP.setConditionalFormatRules(conditionalFormatRules); }Me gustaría agregar una nota en cada celda, donde su valor tiene que ser el asociado en la columna AH. Ejemplo: en cada celda que contiene "2404", establezca una nota con "N00-Infographie_T2". Intenté usar un buscador de texto, pero es demasiado lento.
¿Tienes alguna otra idea? Gracias
Este script toma notas del rango 'AG6:AH8' (puede cambiarlo) y las agrega a las celdas seleccionadas.
// menu function onOpen() { SpreadsheetApp.getUi().createMenu('🛠 Scripts') .addItem('Add notes to selected cells', 'add_notes_to_selected_cells') .addToUi(); } // main function function add_notes_to_selected_cells() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getActiveSheet(); var notes_table = sheet.getRange('AG6:AH8').getValues(); // redefine your range var notes_obj = {} notes_table.forEach(n => notes_obj[n[0]] = n[1]); var active_range = sheet.getActiveRange(); var data = active_range.getValues(); var active_row = active_range.getRow(); var active_col = active_range.getColumn(); for (var row in data) { for (var col in data[row]) { try { var note = notes_obj[data[row][col]]; sheet.getRange(active_row + +row,active_col+ +col).setNote(note); } catch(e) {} } } }El script comienza a través del menú personalizado: 'Scripts > Agregar notas a las celdas seleccionadas'. Simplemente seleccione cualquier celda y haga clic en el menú: