Con gusto!! Me alegra saber que le haya sido de ayuda!!
@alejandromiranda4017Ай бұрын
Hola muy buen aporte, veo que se van bloqueando intervalos de celdas, como podría hacer para eliminar de un jalón todos los intervalos bloqueados ya que la misma hoja la tengo que usar cada semana y tengo que eliminar intervalo por intervalo para que puedan volver a seleccionar saludos.
@technonetsАй бұрын
Hola, gracias por comentar. Me alegra saber que le ha sido útil la información. Aquí le comparto una alternativa que le podría ayudar en su consulta kzbin.info/www/bejne/p5KvgoV_r6-Siac
@guillermogonzalez46522 ай бұрын
Super bien tu explicacion, pero me podrias ayudar, en mi caso no tengo un desplegable, solo quiero bloquear la celda cuando un usuario escriba sobre la celda y que otro usuario en ese momento no pueda sobreescribirla. Me podrias ayudar?. Saludos
@technonets2 ай бұрын
Hola! le comparto una alternativa que le podría ayudar a proteger sus celdas cuando sean editadas. Saludos kzbin.info/www/bejne/iH_Jg6SFfZmNq5I
@wiliamfeliu3 ай бұрын
Hola, Excelente video. Entonces como se haria para bloquear la celda de total si: Suponiendo que tengo una celda que es la columna de Ingresos y el editor coloca el total de ingreso en esa celda y tengo otra celda en la columna Verificaion con un desplegable con dos opciones, Pendiente de Verificacion y Verificado. Como hago para bloquear la celda de ingresos cuando coloque Verificado en la celda de verificacionm para que el editor no pueda modificar el monto en la celda de la columna de ingresos?
@technonets2 ай бұрын
Hola! le comparto como puede bloquear la otra columna cuando se seleccione la una palabra de la lista de validación Espero que le sea de ayuda. Saludos kzbin.info/www/bejne/fKWZpmhqj6t3ipI
@carlosizquierdofuentes62154 ай бұрын
Hola! Y si las celdas que quiero bloquear deben llevar fechas diferentes (la fecha en la que se llenó), ¿Cuál sería la constante?
@technonets4 ай бұрын
Hola! Podría ampliar un poco más la idea? en que columna va la fecha y cuáles serían las condiciones.
@carlosizquierdofuentes62154 ай бұрын
@@technonets Muchas gracias por tu pronta respuesta. Hablando de una sheet mía, los usuarios tienen que colocar una fecha en X columna. Esta fecha puede ser cualquiera (a diferencia de tu ejemplo en el que sólo son 2 o 3 opciones). Mi duda es, ¿Cómo ingreso esa constante (de poder ingresar cualquier fecha) en el appscript y que no se pueda editar la celda posterior a un 1er llenado? Gracias de antemano
@technonets4 ай бұрын
@@carlosizquierdofuentes6215 Para poder proteger la celda mediante el ingreso de una fecha hay que cambiar un poco la lógica del script! Primero habría que ingresar una validación de datos en la columna donde se va a poner la fecha, que para el ejemplo está en la columna E 1. Seleccionar la columna E 2. Ir a validación de datos y agregar una regla por "Es una fecha válida" 3. Después de lo anterior puede ejecutar el siguiente script que tiene la misma estructura que en el video, solo que la fecha va en la Columna E y se quita la validación por Ingresos o gastos Espero que le sea de ayuda. Saludos function protegerCeldas() { const hoja = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const colDeseada = 5; const nombreHojaDeseada = "Contabilidad"; const celdasProtegidas = new Set(); const protecciones = hoja.getProtections(SpreadsheetApp.ProtectionType.RANGE); protecciones.forEach(proteccion => { const rango = proteccion.getRange(); celdasProtegidas.add(rango.getA1Notation()); }); if (hoja.getName() === nombreHojaDeseada) { const celdas = hoja.getRange("E2:E" + hoja.getLastRow()).getValues(); for (let i = 0; i < celdas.length; i++) { const celda = celdas[i][0]; const celdaActual = hoja.getRange(i + 2, colDeseada); if (isDate(celda) && !celdasProtegidas.has(celdaActual.getA1Notation())) { let proteccion = celdaActual.protect(); let editoresActuales = proteccion.getEditors(); for (let j = 0; j < editoresActuales.length; j++) { proteccion.removeEditor(editoresActuales[j]); } celdasProtegidas.add(celdaActual.getA1Notation()); } } } } function isDate(value) { return Object.prototype.toString.call(value) === '[object Date]' && !isNaN(value.getTime()); }