Bonjour à tout le forum, et tout mes vœux pour cette nouvelle année,
Je vous envoi une petite fonction, qui peut être sans doute améliorée, pour déterminé le nom du jour d’une date du calendrier grégorien, soit depuis le 15 octobre 1582.
Mais attention :
Compte tenu qu’Excel considère l ‘année 1900 comme bissextile , les dates doivent être en format texte dans Excel, sinon il y à problème sur les dates entre le 01/01/1900 et le 01/03/1900
Excel donne dans tous les cas des noms erronés entre ces deux dates.
Malgré la discussion « Insertion des dates avant 1/1/1900 », je n’ai pas trouvé la solution
Car 31/12/1899 et 01/01/1900 ont pour numéro de série 1
On peut aussi se servir de la variable J pour déterminer le nombre de jour entre deux dates, ect..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Public Function JourSemaine(LaDate As String) Dim M As Byte Dim D As Byte Dim Y As Long Dim J As Long D = Split(LaDate, "/")(0) ' merci ouskel'n'or M = Split(LaDate, "/")(1) Y = Split(LaDate, "/")(2) If CSng(Y & "." & M & D) < 1582.1015 Then Exit Function ' Ne prend pas les Dates Julienne If (D < 1 Or D > 31) Or (M < 1 Or M > 12) Then Exit Function ' Test sur jours et mois If D = 29 And M = 2 Then ' Test années bissextiles If Y Mod 400 = 0 Or (Y Mod 4 = 0 And Y Mod 100 <> 0) Then GoTo Suite Else Exit Function End If End If Suite: ' Je ne sais plus ou j'avais récupérer la formule qui suit, Sans doute dans le livre Le Calendrier de Paul Couderc, ' que je n'ais plus et qui ne semble plus disponible aujourd'hui. If M > 2 Then M = M + 1 Y = Y Else M = M + 13 Y = Y - 1 End If J = Int(365.25 * Y) - Int(Y / 100) + Int(Y / 400) + Int(30.6001 * M) + D - 478164 Select Case (J Mod 7) + 1 Case 1 JourSemaine = "dimanche" Case 2 JourSemaine = "lundi" Case 3 JourSemaine = "mardi" Case 4 JourSemaine = "mercredi" Case 5 JourSemaine = "jeudi" Case 6 JourSemaine = "vendredi" Case 7 JourSemaine = "samedi" End Select End Function
Partager