Estamos teniendo problemas con los formatos de las celdas, necesito limpiar la hoja para que los colores anteriores se desaparezcan y prevalezcan los nuevos colores.
La opción que se me ocurre, es que en una tercera hoja llamada "formato", se mantenga el formato de celdas, encabezados y columnas con fechas.
La macro copiará la hoja "formato" a la hoja "FACTURACIÓN", limpiando completamente la hoja "FACTURACIÓN".
Advertencia: el color rojo que utilices para el color de la letra deberá ser el color estándar número 3, ese color lo puedes verificar cuando cambias el color de la letra en, más colores: Personalizado, debe estar así:
Esta es la macro
Sub Resumen()
'Por.Dante Amor
Set h1 = Sheets("PROGRAMACIÓN")
Set h2 = Sheets("FACTURACIÓN")
Set h3 = Sheets("formato")
uf = h1.Range("A" & Rows.Count).End(xlUp).Row
uc = h1.Cells(1, Columns.Count).End(xlToLeft).Column
h3.Cells.Copy h2.[A1]
'
For Each c In h1.Range(h1.Cells(2, "D"), h1.Cells(uf, uc)).SpecialCells(xlCellTypeConstants, 23)
Select Case Left(c.Value, 5)
Case "FESTI", "VACAC", "CURSO", "REUNI", "DIAS P"
Case Else
If c.MergeCells Then
valor = c.Value
If c.Value <> "" Then
i = c.MergeArea.Cells(1, 1).Row
f = c.MergeArea.Rows.Count + i - 1
n = c.MergeArea.Rows.Count
llenar h1, h2, c.Value, i, f, n, c.Column, c.Font.ColorIndex, c.Interior.Color
End If
Else
llenar h1, h2, c.Value, c.Row, c.Row, 1, c.Column, c.Font.ColorIndex, c.Interior.Color
End If
End Select
Next
h2.Select
MsgBox "Facturación terminada", vbInformation
End Sub
Sub llenar(h1, h2, c, i, f, n, col, fcolor, icolor)
'Por.Dante Amor
u = h2.Range("A" & Rows.Count).End(xlUp).Row + 1
h2.Cells(u, "A") = c
h2.Cells(u, "B") = h1.Cells(i, "A")
h2.Cells(u, "C") = h1.Cells(f, "A")
h2.Cells(u, "D") = n
h2.Cells(u, "E") = h1.Cells(1, col)
If fcolor = 3 Then
h2.Cells(u, "A").Font.ColorIndex = 3
h2.Cells(u, "A").Interior.Color = icolor
End If
End Sub
Antes de ejecutar la macro deberás crear una hoja llamada "formato".
Te envié por correo el ejemplo de la hoja "formato"
Prueba y me comentas.