bonjour,

voila un probleme tout simple (je pense) il faudrait que je récupère les jours qui sont productif par mois a partir de ce bout de code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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

Problème : il faudrait que je récupère une variables qui me donne les jour productif c'est a dire les jour de travail sans compter les samedi et dimanche et les jours feriez.
Y aurait t'il quelqu'un qui pourrait m'aiguiller