Option Explicit
Sub CompterNbJoursSemaine()
    Dim ws As Worksheet
    Dim DerniereLigne As Long
    Dim i As Long
    Dim Jours(1 To 7) As Long 'Tableau pour compter les jours de la semaine
    Dim Jour As String
    Dim Msg As String
   
    Set ws = ThisWorkbook.Sheets("Feuil1") ' Modifier le nom de la feuille si nécessaire
    DerniereLigne = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row ' Trouver la dernière ligne de la colonne A
    ' Initialiser le tableau
    For i = 1 To 7
        Jours(i) = 0
    Next i
    ' Compter les jours
    For i = 4 To DerniereLigne
        If IsDate(ws.Cells(i, 1).Value) Then
            Jour = Weekday(ws.Cells(i, 1).Value, vbMonday) ' Utilise vbMonday pour que la semaine commence le Lundi
            Jours(Jour) = Jours(Jour) + 1
        End If
    Next i
    ' Construire le message
    Msg = "Nombre de jours de la semaine :" & vbCrLf
    Msg = Msg & "Lundi: " & Jours(1) & vbCrLf
    Msg = Msg & "Mardi: " & Jours(2) & vbCrLf
    Msg = Msg & "Mercredi: " & Jours(3) & vbCrLf
    Msg = Msg & "Jeudi: " & Jours(4) & vbCrLf
    Msg = Msg & "Vendredi: " & Jours(5) & vbCrLf
    Msg = Msg & "Samedi: " & Jours(6) & vbCrLf
    Msg = Msg & "Dimanche: " & Jours(7) & vbCrLf
    ' Afficher le message
    MsgBox Msg
    ' Écrire les résultats sur la feuille
    ws.Cells(1, 3).Value = "Jour"
    ws.Cells(1, 4).Value = "Nombre"
    For i = 1 To 7
        ws.Cells(i + 1, 3).Value = Choose(i, "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche")
        ws.Cells(i + 1, 4).Value = Jours(i)
    Next i
End Sub