En el siguiente ejercicio, presentaremos el calendario completo 2018 de Irlanda en el cual se hará uso de cuatro Macros:
- Para marcar sus días festivos
- Para limpiar los días festivos
- Para marcar sábados y domingos
- Para limpiar los sábados y domingos
Para ello, en primer lugar presentaremos un cuadro con todos los días festivos de Irlanda en el 2018:
Para realizar una Macro que marque los días festivos haremos uso del “CommandButton1” (Insertar controles -> Controles ActiveX), y del mismo modo para todos los casos. En su barra de propiedades, podremos cambiarle el color, nombre, etc.
En segundo lugar, para cada Macro utilizaremos un código diferente en el cual solo variarán las celdas, es decir, el “Range(“…”)”. También se puede variar su contenido dependiendo de que formato es el que se dará al conjunto de celdas.
Para marcar los feriados:
With Range("D7") à Se irá cambiando la celda según lo indique el día festivo
.Interior.ThemeColor = xlThemeColorAccent4
.Interior.TintAndShade = -0.249977111117893
.Font.Name = "Estrangelo Edessa"
End With
Para marcar los sábados y domingos:
With Range("H5:H10")àSe irá cambiando el conjunto de celdas según lo indiquen los sábados
.Interior.ThemeColor = xlThemeColorAccent1
.Interior.TintAndShade = 0.399975585192419
.Font.Italic = True
End With
With Range("B5:B10")àSe irá cambiando el conjunto de celdas según lo indiquen los domingos
.Interior.Color = 255
. Font.Italic = True
End With
En el caso de este calendario, el formato original presentaba tres tipos de colores de fondo, por lo que se realizó tres tipos de códigos para restablecerlo a su formato original.
Para limpiar los feriados:
- Para la sección de celdas de fondo verde
With Range("D7")
.Interior.ThemeColor = xlThemeColorAccent6
.Interior.TintAndShade = 0
.Font.Name = "Calibri"
End With
- Para la sección de celdas de fondo blanco
With Range("M7")
.Interior.ThemeColor = xlThemeColorDark1
.Interior.TintAndShade = 0
.Font.Name = "Calibri"
End With
- Para la sección de celdas de fondo naranja
With Range("V9")
.Interior.ThemeColor = xlThemeColorAccent2
.Interior.TintAndShade = 0
.Font.Name = "Calibri"
End With
Para limpiar los sábados y domingos:
- Para la sección de celdas de fondo verde
With Range("H5:H10")
.Interior.ThemeColor = xlThemeColorAccent6
.Interior.TintAndShade = 0
.Font.Italic = False
End With
With Range("B5:B10")
.Interior.ThemeColor = xlThemeColorAccent6
.Interior.TintAndShade = 0
.Font.Italic = False
- Para la sección de celdas de fondo blanco
With Range("P5:P10")
.Interior.ThemeColor = xlThemeColorDark1
.Interior.TintAndShade = 0
.Font.Italic = False
End With
With Range("J5:J10")
.Interior.ThemeColor = xlThemeColorDark1
.Interior.TintAndShade = 0
.Font.Italic = False
End With
- Para la sección de celdas de fondo naranja
With Range("X5:X10")
.Interior.ThemeColor = xlThemeColorAccent2
.Interior.TintAndShade = 0
.Font.Italic = False
End With
With Range("R5:R10")
.Interior.ThemeColor = xlThemeColorAccent2
.Interior.TintAndShade = 0
.Font.Italic = False
End With
En el siguiente enlace, podrán descargar el calendario de Excel y podrán revisar la Macro completa: