Sub Ventiler()
Application.ScreenUpdating = False
Dim JourToRecord, Deb, Fin As Date
With Sheets("Demande de congé")
For i = 1 To .Range("TabDemande").Rows.Count
Employé = .Range("TabDemande").Item(i, 1)
TypeCongé = .Range("TabDemande").Item(i, 2)
Deb = .Range("TabDemande").Item(i, 3)
Fin = .Range("TabDemande").Item(i, 4)
NbJours = Fin - Deb + 1
'tester si Deb et Fin sont vides..
If Deb = 0 Or Fin = 0 Then
MsgBox Employé & " n'a pas saisi de dates"
Else
For j = 1 To NbJours
JourToRecord = Deb + j - 1
Mois = Format(JourToRecord, "mmmm")
jour = Day(JourToRecord)
'Tester si c'est un jour férié
Set JF = Sheets("Tableau de bord").Range("Liste_JF").Find(JourToRecord)
If JF Is Nothing And WorksheetFunction.Weekday(JourToRecord, 2) <= 5 Then
With Sheets(Mois)
.Activate
Set ligne = .Range("A:A").Find(Employé, LookIn:=xlValues, lookat:=xlWhole)
If Not ligne Is Nothing Then
.Cells(ligne.Row, jour + 2) = TypeCongé
End If
End With
End If
Next j
End If
Next i
End With
Application.ScreenUpdating = True
End Sub