1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| Option Explicit
Private Sub Btn_maj_étalons_Click()
Dim i As Byte
Dim dern As Byte
Dim numétalon As Byte
Dim lacouleur As Long
Dim dernsem As Integer
Dim semdéb As Byte, jourdéb As Byte
Dim semfin As Byte, jourfin As Byte
Dim dtdéb As Range, dtfin As Range
With Worksheets("Planning_ABSENCES")
dernsem = .Cells(8, .Columns.Count).End(xlToLeft).Column
End With
With Worksheets("PRESENCES ABSENCES ETALONS")
dern = .Cells(.Rows.Count, 2).End(xlUp).Row
For i = 5 To dern - 1 Step 2
If Len(.Cells(i, 4)) > 0 Then
With .Cells(i, 2)
numétalon = .Value
lacouleur = .Interior.Color
With .Offset(0, 1)
semdéb = Application.WorksheetFunction.WeekNum(.Value, 2)
jourdéb = Weekday(.Value, vbMonday)
End With
With .Offset(0, 4)
semfin = Application.WorksheetFunction.WeekNum(.Value, 2)
jourfin = Weekday(.Value, vbMonday)
End With
End With
With Worksheets("Planning_ABSENCES")
Set dtdéb = .Range(.Cells(8, 6), .Cells(8, dernsem)).Find("Sem " & semdéb, LookIn:=xlValues).Cells(1, 1)
.Cells(dtdéb.Row + numétalon + 2, dtdéb.Column + jourdéb - 1).Interior.Color = lacouleur
Set dtdéb = Nothing
Set dtfin = .Range(.Cells(8, 6), .Cells(8, dernsem)).Find("Sem " & semfin, LookIn:=xlValues).Cells(1, 1)
.Cells(dtfin.Row + numétalon + 2, dtfin.Column + jourfin - 1).Interior.Color = lacouleur
Set dtfin = Nothing
End With
End If
Next i
End With
End Sub |
Partager