Sub Macro1()
Dim OC As Worksheet 'déclare la variable OC (Onglet Compta)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim I As Integer 'déclare la variable I (Incrément)
Dim D As Object 'déclare la variable D (Dictionnaire)
Dim TMP As Variant 'déclare la variable TMP (tableau TeMPoraire)
Dim MSG As String 'déclare la variable MSG (MeSsaGe)
Dim JS As String 'déclare la variable JS (Jour de la Semaine)
Set OC = Worksheets("compta") 'définit l'onglet OC
TV = OC.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
Set D = CreateObject("Scripting.Dictionary") 'définit le dictionnaire D
For I = 2 To UBound(TV, 1) 'boucle sur toutes les ligne I du tableau des valeurs TV (en partant de la seconde)
D(TV(I, 2)) = "" 'alimente le dictionaire D avec les données en colonne 2
Next I 'prochaine ligne de la boucle
TMP = D.Keys 'récupère dans le tableau temporaire TMP la liste des éléments du dictionnaire D sans doublon
For I = 0 To UBound(TMP) - 1 'boucle sur tous les élément du tabeau temporaire TMP (sauf le dernier)
If TMP(I + 1) <> TMP(I) + 1 Then 'condition : si l'élément suivant est différent de l'élément de la boucle plus un jour
If Weekday(TMP(I), vbMonday) <> 5 Then 'condition 2: si le jour de la semaine n'est pas un vendredi
'définit le jour de la semaine JS
JS = Choose(Weekday(TMP(I), vbMonday), "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche")
'définit le message MSG
MSG = MSG & JS & " " & TMP(I) + 1 & Chr(13)
End If 'fin de la condition 2
End If 'fin de la condition 1
Next I 'prochaine ligne de la boucle
MsgBox "Manque le :" & Chr(13) & MSG 'message
End Sub