Saltar al contenido

PROTEGER CELDAS DE COLOR CON UNA MACRO


Recommended Posts

publicado

Buenos días

Lo que quiero es proteger contra escritura solamente las celdas que en mi caso tienen de fondo el color rojo y que corresponden a festivos, sábados y domingos. Lo quiero hacer a través de una macro porque esas celdas cada año van cambiando de sitio.

Lo he intentado a través de macros de otros foros, pero al pegarlas en Visual Basic, o bien no me funcionan o se me pone en rojo, como si faltara algo o fuera incorrecto. Debo estar haciendo algo mal, debido principalmente a que en el tema de programación de macros soy inexperto, así que por favor si me podéis indicar los pasos a seguir a nivel de principiante os lo agradecería.

Adjunto el archivo en cuestión

Muchas gracias y un saludo

Vacaciones verano.xlsm

publicado

Pon el código adjunto en la hoja VACACIONES.

DobleClick en A1 para "Desproteger/proteger" las celdas coloreadas en rojo.

Dim ModifificarCeldasEnRojo As Boolean

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'--
If Target.Rows.Count = Rows.Count Or _
   Target.Columns.Count = Columns.Count Then Exit Sub
If Target.Cells.Count > 1 Then Exit Sub
'--
If ModifificarCeldasEnRojo = False Then
   If Target.DisplayFormat.Interior.Color = vbRed Then Target.Offset(0, 1).Select
End If

End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address = "$A$1" Then
   ModifificarCeldasEnRojo = Not ModifificarCeldasEnRojo
   Cancel = True
   kolor = ActiveCell.Font.Color
   ActiveCell.Font.Color = ActiveCell.Interior.Color
   ActiveCell.Interior.Color = kolor
End If
End Sub

 

Nota: Solo te funcionará si tienes Excel 2010 o superior.

Si tienes una versión anterior, la cosa se complica por culpa del formato condicional.   

publicado

Buenos días

Funciona perfectamente, lo único que tengo unas dudas  al respecto:

¿Cuál es el motivo por el que has programado la macro para que se active y desactive la protección en la celda A1?

He grabado la macro, pero si voy a la pestaña programador y a macros (o con Alt F8), ésta no me aparece, ¿es porque está vinculada su ejecución a la celda A1?

Muchas gracias Macro Antonio y saludos

 

publicado
Cita

¿Cuál es el motivo por el que has programado la macro para que se active y desactive la protección en la celda A1?

No hay ningún motivo especial.

 

Cita

 ¿es porque está vinculada su ejecución a la celda A1?

En la lista de macros no aparecen las macros de evento, ni las macros con parámetros, ni las macros privadas, resumiendo, solo aparecen las macros públicas sin parámetros.

Si prefieres utilizar una macro a ejecutar de forma manual, comentas.

publicado

Buenos días

Perdona por mi ignorancia respecto a ese tipo de macros que desconocía, como ya comenté anteriormente soy un novato en el tema de macros.

Si no te cuesta mucho,  me gustaría también que me dijeras como hacerlo a través una macro pública, ya que dispongo de un libro en el que voy guardando las macros que considero que me pueden ser útiles para aplicar en diversos archivos.

Muchas gracias de nuevo por tu dedicación y rapidez en las contestaciones.

Saludos

 

publicado

Para ejecutar la macro:

Después de abrir el adjunto, pulsa Alt+F8\Hoja1.ActivarDesactivarModificarCeldasEnRojo Aceptar.

También puedes ejecutarla con la secuencia Ctrl+Shift+M.

Para modificar esta secuencia,  Alt+F8\ Hoja1.ActivarDesactivarModificarCeldasEnRojo Opciones.

Vacaciones verano Versión macro.xlsm

  • Silvia bloqueó este tema

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.