Function IsWeekendDay(monthRange As Range)
Dim DayNum As Variant
Dim IsWeekend As Boolean
Dim s As String
Dim cell As Range
Set currentsheet = ActiveWorkbook.ActiveSheet
Dim CellsDown As Long
Dim CurVal As String
Dim index As Integer
Dim CurCol As Integer
index = 44
CurCol = 0
CellsDown = 21
CurVal = "W"
For Each cell In monthRange
DayNum = WorksheetFunction.Weekday(cell.Value, vbSunday)
If Not IsError(DayNum) Then
Select Case DayNum
Case 2 To 6 ' Monday thru Friday
IsWeekend = False
cell.Interior.ColorIndex = 2
Case Else
IsWeekend = True
cell.Interior.ColorIndex = 44
For CurrRow = 2 To CellsDown
If (Range(cell.Address).Offset(CurrRow - 1 ,CurCol).Interior.ColorIndex = 2) Then
Range(cell.Address).Offset(CurrRow - 1, CurCol).Clear
Range(cell.Address).Offset(CurrRow - 1, CurCol).BorderAround (xlContinuous)
Range(cell.Address).Offset(CurrRow - 1, CurCol).Value = CurVal
Range(cell.Address).Offset(CurrRow - 1, CurCol).Interior.ColorIndex = index
End If
Next CurrRow
End Select
Else
IsWeekend = False ' error
End If
Next cell
End Function
Eu dou a esta função um intervalo de células contendo as datas de um mês.
Eu vou com um For Each
através do intervalo e verifico se o valor da célula é um dia de fim de semana ou não, se é que eu mudo a cor e alguns valores das células abaixo.
Meu problema é que meu programa pega apenas a primeira célula do intervalo (por exemplo, 1-fev-2018) e o verifica depois que ele sai do For Each
e não vai para a próxima célula (2 -Fev-2018).
Ele faz isso 3 vezes e depois trava.
Qual poderia ser o problema?