Problème boucle dans boucle

Bonjour à tous,

Dans le cadre d'un projet je me suis lancé dans la programmation d'un planning mensuel pour aider une entreprise à mieux s'organiser,

les heures travaillées change en fonction des jours, et il y a un roulement chaque mois entre les employés (certains commencent à 8h, d'autres 9h... )

Ce planning inclus une partie vacances, je voudrais coder en sorte que quand on remplis le tableau de vacance, les lignes de planning correspondant au nom de l'employé en vacance soient surlignées ET (c'est la que j'ai le pb) sur une certaine période,

exemple planning

Par exemple :

Sub vacances()
Dim vac1 As String
Dim vac2 As String
Dim vac3 As String
Dim vac4 As String
Dim i As Integer

vac1 = Cells(18, 15)
vac2 = Cells(19, 15)
vac3 = Cells(20, 15)
vac4 = Cells(21, 15)

If vac1 = "" And vac2 = "" And vac3 = "" And vac4 = "" Then
MsgBox "Remplir les vacances !"
End If

For i = 12 To 271

If vac1 <> "" Or vac2 <> "" Or vac3 <> "" Or vac4 <> "" Then

Select Case vac1
Case "employé1"

If Cells(i + 1, 3) = "employé1" Then
Range(Cells(i + 1, 4), Cells(i + 1, 12)).Interior.Color = RGB(255, 255, 200)
Cells(i + 1, 13) = "Congés"
Cells(i + 1, 13).Font.Color = RGB(255, 0, 0)
End If

Case "employé2"
If Cells(i + 1, 3) = "employé2" Then
Range(Cells(i + 1, 4), Cells(i + 1, 12)).Interior.Color = RGB(0, 215, 250)
Cells(i + 1, 13) = "Congés"
Cells(i + 1, 13).Font.Color = RGB(255, 0, 0)
End If

Case "employé3"
If Cells(i + 1, 3) = "employé3" Then
Range(Cells(i + 1, 4), Cells(i + 1, 12)).Interior.Color = RGB(250, 200, 255)
Cells(i + 1, 13) = "Congés"
Cells(i + 1, 13).Font.Color = RGB(255, 0, 0)
End If

End Select

End If

Next i

End Sub

ce programme permet de surligner TOUTES les lignes du planning correspondant au nom de l'employé en congé sur le mois entier, sauf que je voudrais limiter ça aux dates de vacances, parfois juste 2 jours ou 1 semaine,

Sub daate()

Dim t As Integer
Dim d1 As Date
Dim d2 As Date
Dim d3 As Date
Dim d4 As Date
Dim d5 As Date
Dim d6 As Date
Dim d7 As Date
Dim d8 As Date

d1 = CLng(Cells(18, 16))
d2 = CLng(Cells(18, 17))
d3 = CLng(Cells(19, 16))
d4 = CLng(Cells(19, 17))
d5 = CLng(Cells(20, 16))
d6 = CLng(Cells(20, 17))
d7 = CLng(Cells(21, 16))
d8 = CLng(Cells(21, 17))

For t = 0 To 271

If d1 <= Cells(t + 13, 1) And Cells(t + 13, 1) <= d2 Then
Cells(t + 13, 13).Interior.Color = RGB(255, 0, 0)
End If

Next t

End Sub

J'ai pensé à un truc comme ça mais impossible de l'incorporer dans le premier,

Peut-être avec do while ?

Merci d'avance pour vos conseils :)

ps : je suis pas un expert vba ne jugez pas la lourdeur du programme

La 2e partie fonctionne normalement. Difficile de répondre sans le fichier. Si tu peux supprimer tout ce qui est confidentiel, ce sera probablement vite réglé.

Elle fonctionne mais je n'arrive pas à la fusionner avec le programme du dessus, fusionner sub daate et sub vacances :/

Pourrais-tu nous faire une copie d'écran de ce que tu voudrais obtenir pour l'employé n° 2 du 1er au 6 juin ?

Rechercher des sujets similaires à "probleme boucle"