Option Explicit
Private strValue$
Private Sub worksheet_selectionchange(ByVal target As Range)
strValue = target.Value
End Sub
Private Sub Worksheet_Change(ByVal target As Range)
Dim vardate As Byte
On Error GoTo Erreur
Select Case target.Value
Case "x"
vardate = Weekday(Cells(3, target.Column).Value, vbMonday)
Cells(target.Row, 33 + vardate) = Cells(target.Row, 33 + vardate) + 1
Case Else
vardate = Weekday(Cells(3, target.Column).Value, vbMonday)
If Cells(target.Row, 33 + vardate).Value > 0 And strValue = "x" Then Cells(target.Row, 33 + vardate) = Cells(target.Row, 33 + vardate) - 1
End Select
Erreur:
End Sub