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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
| Option Explicit
Public CelluleCalendar As Range
Public AireDeSaisie As Range
Public Configuration As Integer
Public Reponse As Integer
Sub MettreAJourLeTableau(ByVal DateEtudiee As Date, ByVal CelluleDebut As Range, ByVal AireDeCollecte As Range)
Dim DateDebut As Date
Dim DateATester As Date
Dim DateFin As Date
Dim JourDuMoisEncours As Integer
' Mise à jour de la ligne des titres
'-----------------------------------
DateDebut = CDate("01/" & Month(DateEtudiee) & "/" & Year(DateEtudiee)) ' Quel que soit le jour saisi, le premier jour est le premier du mois
DateFin = WorksheetFunction.EDate(DateDebut, 1) - 1 ' On prend le premier jour du mois suivant
With Rows(CelluleDebut.Row).Cells
.Interior.Color = xlNone
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.RowHeight = 25
End With
Range(CelluleDebut.Offset(0, 1), CelluleDebut.Offset(0, 31)).Clear
JourDuMoisEncours = 1
For DateATester = DateDebut To DateFin
Select Case WorksheetFunction.Weekday(DateATester, 2)
Case 1, 3, 5 ' Lundi, mercredi, vendredi
With CelluleDebut.Offset(0, JourDuMoisEncours)
.Value = DateATester
.NumberFormat = "[$-40C]ddd d mmm "
.ColumnWidth = 12
End With
JourDuMoisEncours = JourDuMoisEncours + 1
Case 6 ' Samedi
With CelluleDebut.Offset(0, JourDuMoisEncours)
.Value = DateATester
.Interior.ColorIndex = 6
.NumberFormat = "[$-40C]ddd dd mmm "
.ColumnWidth = 12
End With
JourDuMoisEncours = JourDuMoisEncours + 1
End Select
Next DateATester
' Mise à jour de la zone de collecte du tableau
'----------------------------------------------
With AireDeCollecte
.Value = "o"
.VerticalAlignment = xlCenter
End With
End Sub
Sub IncorporerUnMessage(Titre, Message)
Configuration = vbCritical + vbYesNo + vbQuestion
Reponse = MsgBox(Message, Configuration, Titre)
End Sub |
Partager