'### Constante de la feuille source à adapter ###
Const FEUILLE As String = "2007"
'################################################
Sub Recapitulatif()
Dim S As Worksheet
Dim R As Range
Dim var
Dim i&
Dim j&
Dim k&
Dim mois&
Dim cpt&
Dim CATM()
Dim CATC()
Dim MJoursTravail&
Dim MJoursSport&
Dim MJoursTrajet&
Dim CJoursTravail&
Dim CJoursSport&
Dim CJoursTrajet&
Dim Vehicule&
Dim ColDepart&
ColDepart& = 32
Sheets(FEUILLE).Copy After:=Sheets(Sheets.Count)
Set S = ActiveSheet
Set R = S.Range("a5:y" & S.[c65536].End(xlUp).Row & "")
var = R
For mois& = 1 To 12
Vehicule& = 0
MJoursTravail& = 0
MJoursSport& = 0
MJoursTrajet& = 0
CJoursTravail& = 0
CJoursSport& = 0
CJoursTrajet& = 0
Erase CATM
Erase CATC
ReDim CATM(7 To 22)
ReDim CATC(7 To 22)
For i& = 1 To UBound(var, 1)
If Month(var(i&, 4)) = mois& Then
If UCase(Trim(var(i&, 3))) = "M" Then
For j& = 7 To 22
If var(i&, j&) <> "" Then
CATM(j&) = CATM(j&) + 1
If j& < 14 Or j& = 18 Then MJoursTravail& = MJoursTravail& + var(i&, 6)
If j& > 13 And j& < 18 Then MJoursSport& = MJoursSport& + var(i&, 6)
If j& > 18 Then MJoursTrajet& = MJoursTrajet& + var(i&, 6)
Exit For
End If
Next j&
ElseIf UCase(Trim(var(i&, 3))) = "C" Then
For j& = 7 To 22
If var(i&, j&) <> "" Then
CATC(j&) = CATC(j&) + 1
If j& < 14 Or j& = 18 Then CJoursTravail& = CJoursTravail& + var(i&, 6)
If j& > 13 And j& < 18 Then CJoursSport& = CJoursSport& + var(i&, 6)
If j& > 18 Then CJoursTrajet& = CJoursTrajet& + var(i&, 6)
Exit For
End If
Next j&
End If
End If
Next i&
'--- C ---
For k& = 19 To 22
S.Range(Cells(k& - 12, ColDepart&), Cells(k& - 12, ColDepart&)) = CATC(k&)
Next k&
For k& = 7 To 9
Vehicule& = Vehicule& + CATC(k&)
Next k&
If Vehicule& > 0 Then S.Range(Cells(13, ColDepart&), Cells(13, ColDepart&)) = Vehicule&
Vehicule& = 0
For k& = 10 To 13
S.Range(Cells(k& + 4, ColDepart&), Cells(k& + 4, ColDepart&)) = CATC(k&)
Next k&
S.Range(Cells(18, ColDepart&), Cells(18, ColDepart&)) = CATC(18)
For k& = 14 To 17
S.Range(Cells(k& + 7, ColDepart&), Cells(k& + 7, ColDepart&)) = CATC(k&)
Next k&
If CJoursTrajet& > 0 Then S.Range(Cells(12, ColDepart&), Cells(12, ColDepart&)) = CJoursTrajet&
If CJoursTravail& > 0 Then S.Range(Cells(20, ColDepart&), Cells(20, ColDepart&)) = CJoursTravail&
If CJoursSport& > 0 Then S.Range(Cells(26, ColDepart&), Cells(26, ColDepart&)) = CJoursSport&
ColDepart& = ColDepart& + 1
'--- M ---
For k& = 19 To 22
S.Range(Cells(k& - 12, ColDepart&), Cells(k& - 12, ColDepart&)) = CATM(k&)
Next k&
For k& = 7 To 9
Vehicule& = Vehicule& + CATM(k&)
Next k&
If Vehicule& > 0 Then S.Range(Cells(13, ColDepart&), Cells(13, ColDepart&)) = Vehicule&
Vehicule& = 0
For k& = 10 To 13
S.Range(Cells(k& + 4, ColDepart&), Cells(k& + 4, ColDepart&)) = CATM(k&)
Next k&
S.Range(Cells(18, ColDepart&), Cells(18, ColDepart&)) = CATM(18)
For k& = 14 To 17
S.Range(Cells(k& + 7, ColDepart&), Cells(k& + 7, ColDepart&)) = CATM(k&)
Next k&
If MJoursTrajet& > 0 Then S.Range(Cells(12, ColDepart&), Cells(12, ColDepart&)) = MJoursTrajet&
If MJoursTravail& > 0 Then S.Range(Cells(20, ColDepart&), Cells(20, ColDepart&)) = MJoursTravail&
If MJoursSport& > 0 Then S.Range(Cells(26, ColDepart&), Cells(26, ColDepart&)) = MJoursSport&
ColDepart& = ColDepart& + 2
Next mois&
End Sub