¿Cómo puedo resaltar las celdas no bloqueadas de una plantilla (en las que quiero que se edite)con un color, pero que este color no se imprima?. O cualquier otra solución para llamar la atención al que rellene la plantilla de que es en esas celdas en las que puede editar.
1 Respuesta
Respuesta de fejoal
1
1
fejoal, Por falta de tiempo para responder como me gusta hacerlo suspendo...
Recién vuelto de mi fin de semana, vi tu pregunta. Me hubiera gustado saber si tienes una macro de impresión (ayudaría que la tuviersas), de todos modos te daré las dos alternativas posibles: Veamos, primero activa el editor de Visual Basic (presiona Alt+F11), inserta un nuevo módulo ("Insertar", "Módulo") y pega el siguiente código: 'Define aquí el rango amplio que 'comprenda a las celdas habilitadas: Const SupIzq = "B2" Const InfDer = "F20" '------------------ gracias Sub pinta() For Each celda In Range(SupIzq, InfDer) If celda.Locked Then celda.Interior.ColorIndex = xlNone Else celda.Interior.ColorIndex = 34 End If Next End Sub Sub despinta() For Each celda In Range(SupIzq, InfDer) celda.Interior.ColorIndex = xlNone Next End Sub Verás, al inicio, dos variables para indicarle un rango que comprenda las celdas no bloqueadas (esto aliviana el trabajo de la macro, para que no recorra toda la hoja buscándolas). Coloca allí las referencias. Este módulo te será útil tanto si tienes una macro de impresión como si no. Si la tuvieras, bastara conque escribas Despinta Antes de la instrucción de imprimir y: Pinta Inmediatamente después. Si, en cambio no existiese tal macro de impresión, apelaremos a eventos: El evento Before_Print para que quite el color antes de imprimir y el calculate de la Hoja dónde quieres que esto ocurra (donde harás la carga de datos). Da doble click sobre ella. Copia el código siguiente y pégalo en el panel desplegado a la derecha de su Editor de Visual Basic: Private Sub Worksheet_Calculate() pinta End Sub (Cada vez que la hoja se recalcule, la macro pintará las celdas desbloqueadas. De hecho puedes elegir otro evento, si te parece más acertado) Y, en la hoja que dice "ThisWorkbook" (o "EsteLibro" según la versión), pega este otro: Private Sub Workbook_BeforePrint(Cancel As Boolean) despinta End Sub Este, desde luego, quitará el color de las celdas bloqueadas antes de imprimir. --- Una alternativa más doméstica sería colocar un 1 en una celda y darle Formato condicional a las celdas no bloqueadas, referido a que aquella celda tuviera o no un 1. Deberías borrarlo antes de imprimir y volverlo a colocar al momento de la carga. Elige el método que te resulte más adecuado. - Ingresa al sitio www.porloschicos.com y, si quieres, presiona el botón de donación (es gratis). Confío en que lo harás.