Sub Plage_Date()
Dim Adr$, Lg%, Cl%, Y%, i%, AnMois$
Dim j(), MJ%, Année&, Fin%, FMT(), CHX%
Dim LeJour(), Mois(), m%, jr%, Gras%
Application.ScreenUpdating = False
'----- adressage plage ------------
Adr = Range("C3").Address 'activecell.Address
Lg = Range(Adr).Row 'numéro ligne
Cl = ColNum(Adr) 'numéro colonne
'-------- Données ------------
Année = Range("K4").Value
m = Range("K5").Value
jr = Range("K6").Value
CHX = Range("K8").Value
Gras = Range("K9").Value
Fin = Range("K10").Value
'----------------------------------
j = Array("", 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
'------ Année Bisextile ------
'Année = 2024 'TextBox1
If m = 2 Then 'si mois Février
If (Année Mod 4 = 0 And Année Mod 100 <> 0) Or (Année Mod 400 = 0) Then
MJ = 29
Else
MJ = 28
End If
End If
'-------------------------
If MJ <> 29 Then
MJ = j(m)
Else
MJ = 29
End If
'-------------------------
Y = 0
AnMois = m & "/" & Année
'-------------------------
'---------------- Court ------- Abrégé --------- Long ---- long + jour semaine -- court + jr Sem. - abrégé + jr Sem. -- Jr. Sem.--
'--------------- Format1------- Format2 ------- Format3 ------- Format4 ------------- Format5 ---------- Format6 ------ Format7 --
'FMT = Array("", "dd/mm/yyyy", "dd mmm yyyy", "dd mmmm yyyy", "dddd dd mmmm yyyy", "dddd dd/mm/yyyy", "dddd dd mmm yyyy", "dddd")
FMT = Array("", Format1, Format2, Format3, Format4, Format5, Format6, Format7)
'---- Format affichage ---
If jr + Fin > MJ Or Fin = 0 Then
For i = jr To MJ
Cells(Lg + Y, Cl).Clear
Cells(Lg + Y, Cl).HorizontalAlignment = xlRight
Cells(Lg + Y, Cl).Value = Format(i & "/" & AnMois, FMT(CHX))
Cells(Lg + Y, Cl).Font.Name = "Tahoma"
Cells(Lg + Y, Cl).Value = CStr(Cells(Lg + Y, Cl).Value) 'Format texte
'------------- Surbrillance -------------
If Gras = 1 Then
If Y = 0 Or Y = 7 Or Y = 14 Or Y = 21 Or Y = 28 Then
With Cells(Lg + Y, Cl).Font
.ColorIndex = 1
.Bold = True
End With
End If
Else
Cells(Lg + Y, Cl).Font.Bold = False
End If
'-----------------------------------------
Cells(Lg + Y, Cl).EntireColumn.AutoFit
Y = Y + 1
Next i
ElseIf jr + Fin < MJ Then
For i = jr To jr + Fin
Cells(Lg + Y, Cl).Clear
Cells(Lg + Y, Cl).HorizontalAlignment = xlRight
Cells(Lg + Y, Cl).Value = Format(i & "/" & AnMois, FMT(CHX))
MsgBox Format(i & "/" & AnMois, FMT(CHX))
Cells(Lg + Y, Cl).Font.Name = "Tahoma"
' Cells(Lg + Y, Cl).Value = CStr(Cells(Lg + Y, Cl).Value)
'--------------- Surbrillance -------------
If Gras = 1 Then
If Y = 0 Or Y = 7 Or Y = 14 Or Y = 21 Or Y = 28 Then
With Cells(Lg + Y, Cl).Font
.ColorIndex = 1
.Bold = True
End With
End If
Else
Cells(Lg + Y, Cl).Font.Bold = False
End If
'-----------------------------------------
Cells(Lg + Y, Cl).EntireColumn.AutoFit
Y = Y + 1
Next i
End If
Application.ScreenUpdating = True
End Sub
'==========================