Il faut effectivement tenir compte des jours pour parvenir à un résultat satisfaisant.
Voici donc un exemple de code, qui agit sur toutes les cellule de ton tableau, dans la plage G2:AK20. Il te suffit de modifier cette adresse si elle ne convient pas.
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Range("G2:AK20"), Target) Is Nothing Then Exit Sub
j = WorksheetFunction.Weekday(Cells(8, Target.Column))
If j = 1 Or j = 4 Or j = 7 Then Target.Offset(0, 1).Select
End Sub