à 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 :
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
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 SubAu début j'ai pensé que la fonction month() renvoie un type Date.
Code : Sélectionner tout - Visualiser dans une fenêtre à part If Month(Worksheets(2).Cells(29, c)) = val Then
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?
Partager