Bonsoir le fil
Mathilde22
Tu peux reposter le code VBA qui te pose problème, stp?
(Qu'on ne soit pas obligé de retourner sur la page 1 - message 1)
Const Chronos = "1-"
Sub exoDates()
Dim vDate
vDate = Chronos & Month(Date) & "-" & Year(Date)
MsgBox Format(CDate(vDate), "ddd dd mmmm yyyy"), 64, "test 1"
Dim vvDate
vvDate = Chronos & Application.RandBetween(2, 12)
MsgBox Format(CDate(vvDate), "dddd d mmmm yyyy"), 64, "test 2"
Dim vvvDate
vvvDate = DateValue(Chronos & "janvier 2031")
a = Year(vvvDate)
MsgBox DateSerial(a, Application.RandBetween(1, 12), 1), 64, "test 3"
Dim ma_Date As Date
ma_Date = Date
MsgBox "ma_Date: est une date ? : " & IsDate(ma_Date) & Chr(13) & Format(ma_Date, "yyyy mmmm dd dddd")
End Sub
Sub premSem()
Dim numSemaine As Integer, noAnnee As Integer
Dim noJourPremierAn As Integer
Dim dateDebut As Date, datefin As Date
noAnnee = Val(InputBox(" N° de l’année ? "))
noJourPremierAn = Val(InputBox("N° jour du 1er janvier ?"))
numSemaine = 1
dateDebut = "1 / 1 " & noAnnee
If noJourPremierAn = 1 Or noJourPremierAn = 2 Or noJourPremierAn = 3 Or noJourPremierAn = 4 Then
dateDebut = dateDebut
Else
dateDebut = dateDebut + 8 - noJourPremierAn
End If
If noJourPremierAn = 1 Or noJourPremierAn = 2 Or noJourPremierAn = 3 Or noJourPremierAn = 4 Then
datefin = dateDebut + 8 - noJourPremierAn
Else
datefin = dateDebut + 7
End If
MsgBox "Date de début : " & dateDebut & vbNewLine & "Date de fin : " & datefin
End Sub
Sub afficherSemaines()
Dim numSemaine As Integer, noAnnee As Integer
Dim noJourPremierAn As Integer
Dim dateDebut As Date, datefin As Date
noAnnee = Val(InputBox(" N° de l’année ? "))
noJourPremierAn = Val(InputBox("N° jour du 1er janvier ?"))
numSemaine = 1
dateDebut = "1 / 1 " & noAnnee
If noJourPremierAn = 1 Or noJourPremierAn = 2 Or noJourPremierAn = 3 Or noJourPremierAn = 4 Then
dateDebut = dateDebut
Else
dateDebut = dateDebut + 8 - noJourPremierAn
End If
If noJourPremierAn = 1 Or noJourPremierAn = 2 Or noJourPremierAn = 3 Or noJourPremierAn = 4 Then
datefin = dateDebut + 8 - noJourPremierAn
Else
datefin = dateDebut + 7
End If
Do
Debug.Print numSemaine & " - " & dateDebut
dateDebut = datefin + (numSemaine - 1) * 7
numSemaine = numSemaine + 1
Loop Until Year(dateDebut) > noAnnee
End Sub
Sub afficherSemaines()
Dim numSemaine As Integer, noAnnee As Integer
Dim noJourPremierAn As Integer
Dim dateDebut As Date, datefin As Date
noAnnee = Val(InputBox(" N° de l’année ? "))
noJourPremierAn = Val(InputBox("N° jour du 1er janvier ?"))
numSemaine = 1
dateDebut = "1-" & noAnnee
If noJourPremierAn = 1 Or noJourPremierAn = 2 Or noJourPremierAn = 3 Or noJourPremierAn = 4 Then
dateDebut = dateDebut
Else
dateDebut = dateDebut + 8 - noJourPremierAn
End If
If noJourPremierAn = 1 Or noJourPremierAn = 2 Or noJourPremierAn = 3 Or noJourPremierAn = 4 Then
datefin = dateDebut + 8 - noJourPremierAn
Else
datefin = dateDebut + 7
End If
Do
'Debug.Print numSemaine & " - " & Format(dateDebut, "dddd dd mmm yyyy")
Cells(numSemaine, 1) = numSemaine
Cells(numSemaine, 2) = Format(dateDebut, "dddd dd mmm yyyy")
dateDebut = datefin + (numSemaine - 1) * 7
numSemaine = numSemaine + 1
Loop Until Year(dateDebut) > noAnnee
End Sub
Sub AfficherSemaine()
noAnnee = InputBox("Année?", "Exo", Year(Date))
Cells(1, 2) = DateSerial(noAnnee, 1, 4) - Weekday(DateSerial(noAnnee, 1, 4), vbMonday) + 1
Fin = DateSerial(noAnnee, 12, 31)
Range("A1:A53") = "=ROW()"
Range("B1:B53").DataSeries Rowcol:=xlColumns, Type:=xlChronological, Date:=xlDay, Step:=7, Stop:=Fin
Range("B1:B53").NumberFormatLocal = "jjjj jj mmmm aaaa"
End Sub
Sub version_II()
Dim PremierLundi, DernierJour, x
noAnnee = InputBox("Choix de l'année?", "Calendrier", Year(Date))
PremierLundi = DateSerial(noAnnee, 1, 4) - Weekday(DateSerial(noAnnee, 1, 4), vbMonday) + 1
MsgBox _
"Le premier lundi de la 1ère semaine est: " & Chr(13) & Format(PremierLundi, "dddd d mmmm yyyy"), _
vbInformation, "Année:" & noAnnee
DernierJour = DateSerial(noAnnee, 12, 31)
x = Int(DernierJour - PremierLundi) / 7 + 1
With Cells(1, 2)
.Value = PremierLundi
.Offset(, -1) = 1
.Resize(x).DataSeries Rowcol:=xlColumns, Type:=xlChronological, Date:=xlWeekday, Step:=5
.Offset(, -1).Resize(x).DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, Step:=1
.Resize(x).NumberFormatLocal = "jjjj mmmm aaaa"
End With
End Sub