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
| Sub Journalier_bis()
Dim Dl As Range, x As Long, y As Long, z As Long
Dim Cpte As Long, NomF As String
Dim TbMois, TbJour
Dim AUJ, AUTM, FINM As Date, MM, AA As Integer
Cells(7, 2) = Evaluate("=YEAR(B5)&""_""&TEXT(MONTH(B5),""00"")") 'nom de l'onglet mois
NomF = Range("B7")
AUJ = Range("B5")
Range("C9:AC9").ClearContents
MM = Month(AUJ)
If MM < 12 Then
AA = Year(AUJ)
Else
AA = Year(AUJ) + 1
End If
AUTM = CVDate("1/" & MM + 1 & "/" & AA)
FINM = AUTM - 1
JFINM = Day(FINM)
Sheets("Réalisation Journalière").Cells(9, 3) = AUJ
For j = 4 To JFINM + 3
Sheets("Réalisation Journalière").Cells(9, j).Value = Cells(9, j - 1) + 1
Next j
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
With Sheets("Réalisation Journalière")
.Range("C11:AG35") = Null 'ici remettre toutes les colonnes _
quand le fichier aura toutes ses feuilles donc ".Range("D9:AC32") = Null"
TbMois = .Range("B11:AG35") 'ici remettre toutes les colonnes _
quand le fichier aura toutes ses feuilles donc ".Range("C9:AC32") = Null"
For x = 1 To 31 'ici total du nombre de jour du mois
TbJour = Sheets(NomF).Range("L2", Sheets(NomF).Range("AC" & Sheets(NomF).Rows.Count).End(xlUp))
For y = 1 To UBound(TbMois, 1)
For z = 1 To UBound(TbJour, 1)
If TbMois(y, 1) = TbJour(z, 1) Then Cpte = Cpte + 1
Next z
TbMois(y, x + 1) = Cpte
Cpte = 0
Next y
Set Dl = Sheets(NomF).Range("A" & Sheets(NomF).Rows.Count).End(xlUp)
For L = 3 To 31
For M = 11 To 35
Cells(M, L) = WorksheetFunction.CountIfs(Sheets(NomF).Range("AC2", Dl(1, 29)), Cells(9, L), Sheets(NomF).Range("L2", Dl(1, 12)), Cells(M, 2))
Next M
Next L
Next x
.Range("B11").Resize(UBound(TbMois, 1), UBound(TbMois, 2)) = TbMois
End With
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub |