à tous !

J'ai réalisé la macro suivante qui me permet de déterminer une période (normal, vacance d'été, vacance de noël, etc...) de l'année à partir d'une date donnée :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
Sub Periode()
    Dim val, c As Integer
    val = Worksheets(1).Cells(36, 6)
    For c = 2 To 30
        If Month(Worksheets(2).Cells(29, c)) = val Then
            Select Case val
                Case Is = 1, 3, 5, 6, 9, 11
                    Worksheets(8).Cells(2, c) = "normal"
                Case Is = 2
                    Worksheets(8).Cells(2, c) = "fevrier"
                Case Is = 4
                    Worksheets(8).Cells(2, c) = "paques"
                Case 7 To 8
                    Worksheets(8).Cells(2, c) = "été"
                Case Is = 10
                    Worksheets(8).Cells(2, c) = "toussaint"
                Case Is = 12
                    Worksheets(8).Cells(2, c) = "noël"
            End Select
        End If
    Next c
End Sub
Le problème c'est que la macro fonctionne, mais elle m'affiche un message d'erreur à la fin "incompatibilité de type" et marque un point d'arrêt à la ligne suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
If Month(Worksheets(2).Cells(29, c)) = val Then
Au début j'ai pensé que la fonction month() renvoie un type Date.
Mais ce n'est pas le cas, elle renvoie un entier étant le numéro du mois.
La variable val contient bien sur le numéro du mois de type entier.
Alors je ne comprends pas vraiment pourquoi la macro fontionne s'il y a une erreur dans le programme.

Quelqu'un peut-il m'aider ?