Incompatibilité de type entier
:salut: à 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:
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:
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 :mrgreen: ?