Insira o feriado de acordo com a Tabela na lista de feriados usando VBA

Anonim

Pergunta:
Eu tenho o EmployeeName, o HolidayStart e o HolidayEnd em uma planilha. Como posso colorir as férias de cada funcionário nas folhas do mês seguinte?

Responder:
Insira o seguinte código com XL5 / 7 em um ModuleSheet, com XL8 em um módulo geral, atribua-o a um botão e execute-o.

Coloque o código abaixo no módulo padrão

SubNovaVacation () Dim rngFind As Range Dim intRow As Integer, intMonth As Integer, intCounter As Integer intRow = 3 Do until IsEmpty (Cells (intRow, 1)) For intMonth = Month (Cells (intRow, 2)) To Month (Cells (intRow, 3)) Defina rngFind = Worksheets (Format (DateSerial (1, intMonth, 1), "mmmm")). _ Columns (1) .Find _ (Cells (intRow, 1), LookIn: = xlValues, lookat: = xlWhole) If intMonth = Month (Cells (intRow, 2)) And intMonth = _ Month (Cells (intRow, 3) ) Then For intContador = Dia (Cells (intRow, 2)) To Day (Cells (intRow, 3)) rngFind.Offset (0, intCounter) .Interior.ColorIndex = 3 Next intCounter ElseIf intMonth = Month (Cells (intRow, 2) )) Then For intCounter = Day (Cells (intRow, 2)) To Day (DateSerial _ (1, Month (Cells (intRow, 2)) + 1, 0)) rngFind.Offset (0, intCounter) .Interior.ColorIndex = 3 Próximo intContador Else For intContador = 1 To Day (Cells (intRow, 3)) rngFind.Offset (0, intCounter) .Interior.ColorIndex = 3 Next intCounter End If Next intMonth intRow = intRow + 1 Loop End Sub