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 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
| 'on place les jours du mois
vl_jour = 1
If (vl_cpt = 1) Then
vl_mois = nomMois(Month(Date))
vl_annee = NomAnnee(Month(Date))
Else
vl_NumMois = (Month(Date) + vl_cpt - 1)
If (vl_NumMois > 12) Then
vl_mois = nomMois(vl_NumMois)
vl_annee = NomAnnee(Month(Date) + vl_cpt)
Else
vl_mois = nomMois(vl_NumMois)
vl_annee = NomAnnee(Month(Date))
End If
End If
vlDate = Str(vl_jour) + "/" + vl_mois + "/" + vl_annee
vl_colonne = 0
While (IsDate(vlDate) And (vl_jour <= 31))
Cells(CST_LIGNE_CALENDRIER_JOUR, CST_COLONNE_DEB_CALENDRIER_JOUR + vl_colonne).Select
If IsDate(vlDate) Then
' La date est valide
Select Case WeekDay(vlDate)
Case 1
ActiveCell.FormulaR1C1 = "Dim"
Case 2
ActiveCell.FormulaR1C1 = "Lun"
Case 3
ActiveCell.FormulaR1C1 = "Mar"
Case 4
ActiveCell.FormulaR1C1 = "Mer"
Case 5
ActiveCell.FormulaR1C1 = "Jeu"
Case 6
ActiveCell.FormulaR1C1 = "Ven"
Case 7
ActiveCell.FormulaR1C1 = "Sam"
End Select
' on grise pour signaler un we ou jour ferie
' attention 4 colonnes
If (getTypeJour(vlDate) <> CST_JOUR_NORMAL) Then
For vl_cpt = 1 To 4
Selection.Interior.Pattern = xlGray8
Cells(CST_LIGNE_CALENDRIER_JOUR, CST_COLONNE_DEB_CALENDRIER_JOUR + vl_colonne + vl_cpt).Select
Next vl_cpt
End If
Cells(CST_LIGNE_CALENDRIER_NUM_JOUR, CST_COLONNE_DEB_CALENDRIER_NUM_JOUR + vl_colonne).Select
ActiveCell.FormulaR1C1 = Str(vl_jour)
' on grise pour signaler un we ou jour ferie
If (getTypeJour(vlDate) <> CST_JOUR_NORMAL) Then
Cells(CST_LIGNE_CALENDRIER_NUM_JOUR, CST_COLONNE_DEB_CALENDRIER_NUM_JOUR + vl_colonne - 1).Select
For vl_cpt = 1 To 4
Selection.Interior.Pattern = xlGray8
Cells(CST_LIGNE_CALENDRIER_NUM_JOUR, CST_COLONNE_DEB_CALENDRIER_NUM_JOUR + vl_colonne + vl_cpt - 1).Select
Next vl_cpt
End If
vl_colonne = vl_colonne + 4
End If
vl_jour = vl_jour + 1
vlDate = Str(vl_jour) + "/" + vl_mois + "/" + vl_annee
Wend
While ((vl_colonne + CST_COLONNE_DEB_CALENDRIER_JOUR) <= CST_COLONNE_FIN_CALENDRIER_JOUR)
Cells(CST_LIGNE_CALENDRIER_JOUR, CST_COLONNE_DEB_CALENDRIER_JOUR + vl_colonne).Select
ActiveCell.FormulaR1C1 = "***"
Cells(CST_LIGNE_CALENDRIER_NUM_JOUR, CST_COLONNE_DEB_CALENDRIER_NUM_JOUR + vl_colonne).Select
ActiveCell.FormulaR1C1 = "***"
vl_colonne = vl_colonne + 4
Wend
' *******************************************************
MsgBox () ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'on positionne les we et jours feries
'calcul du nombre de collaborateurs
nbCollaborateur = 0
vl_ligne = 0
Cells(CST_LIGNE_DEB_COLLABORATEUR + vl_ligne, CST_COLONNE_COLLABORATEUR).Select
While (Selection <> Empty)
nbCollaborateur = nbCollaborateur + 1
vl_ligne = vl_ligne + 1
Cells(CST_LIGNE_DEB_COLLABORATEUR + vl_ligne, CST_COLONNE_COLLABORATEUR).Select
Wend
vl_colonne = 0
While ((vl_colonne + CST_COLONNE_DEB_CALENDRIER_JOUR) <= CST_COLONNE_FIN_CALENDRIER_JOUR)
'on selectionne les jours
Cells(CST_LIGNE_CALENDRIER_JOUR, CST_COLONNE_DEB_CALENDRIER_JOUR + vl_colonne).Select
' Si c'est un samedi ou un dimanche ou un jour ferie on rempli la colonne
If (Selection.Interior.Pattern = xlGray8) Then
Range(Cells(CST_LIGNE_DEB_COLLABORATEUR, CST_COLONNE_DEB_CALENDRIER_JOUR + vl_colonne), Cells(CST_LIGNE_DEB_COLLABORATEUR + nbCollaborateur - 1, CST_COLONNE_DEB_CALENDRIER_JOUR + vl_colonne)).Select
Selection.Interior.Pattern = xlGray8
End If
vl_colonne = vl_colonne + 1
Wend |
Partager