For all I know, it is very late where you are and rather than wait, I went ahead, assuming I understand the current problem. Since you are using 2 background colours for days, it becomes more difficult if you have to distinguish between weekends and weekdays. The distinction doesn't have to be made when changing to yellow (or whatever). It becomes a problem when deciding what to put it back to, and that depends on weekend or not. So here's what I think you need, based on changing the font colour instead. Replace the red line with the following
Code:
If i = DatePart("d", Date) + 3 And CLng(Me.cboMonth) = DatePart("m", Date) Then
Controls(strCtlName).ForeColor = vbRed
Else
Controls(strCtlName).ForeColor = vbBlack
End If
If you want to continue on with altering the background, I leave it to you to do the tests for weekdays versus weekends. Other than the font, I suppose you could alter the border, or make it appear sunken, or any combination of those. Note that by using specific colours as alternates, they will over-ride generic settings such as "Text 1" which you have in your other controls. This means that for one user, the altered font may appear black while the rest are "Text 1", which depends on system settings. If all users are restricted to the same system settings and Text 1 is black in the theme, there should be no visual conflict. To ensure you avoid this, you would set all textboxes to an actual colour value that will match what you're using in code. In this case, all calendar textboxes would have a value from the Standard list, such as #000000, and not the themes list. You can do all of these controls at once by selecting all of them first.
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.