Comment faire pour g=E9n=E9rer automatiquement, =E0 partir=20
d'une liste de 1 =E0 n personnes dont les absences ont =E9t=E9=20
rentr=E9es au pr=E9alable, un calendrier ne pr=E9sentant que=20
les jours ouvr=E9s (avec les journ=E9es d'absence gris=E9s) et=20
tenant compte des ann=E9es bissextiles (ce qui ne semble=20
pas =EAtre le cas sous Excel 2002 puisque le mois de=20
f=E9vrier 2004 s'arr=EAte le 28...) ?
S'il s'agit d'une macro en VBA, il va falloir que je m'y=20
mette.
Bonne ann=E9e
Caractéristique archi-connue d'Excel qui se conforme aux normes économiques nord-américaines qui veulent que l'on compte l'intervalle de temps à partir du lendemain d'une transaction.
Juste pour le fun.
Faire un calendrier pour février 2004 dans une feuille de calcul, à partir de A1:
Sub CalendrierCivilise() Dim lenumero As Integer, lemois As Integer Dim lejour As Integer, lannee As Integer Dim i As Byte, j As Byte, k As Byte, lalimite As Integer Dim ladate As Double Range("a1").Value = "Dim" Range("B1").Value = "Lun" Range("c1").Value = "Mar" Range("d1").Value = "Mer" Range("e1").Value = "Jeu" Range("f1").Value = "Ven" Range("g1").Value = "Sam" lemois = Month(Date) lannee = Year(Date) lenumero = Weekday(DateSerial(lannee, lemois, 1)) lalimite = Day(DateSerial(lannee, lemois + 1, 1) - 1) k = 1 For i = 2 To 7 If i > 2 Then For j = 1 To 7 If k <= lalimite Then Cells(i, j).Value = k k = k + 1 Else Exit For End If Next Else For j = lenumero To 7 Cells(2, j).Value = k k = k + 1 Next End If Next End Sub
que 2004 est bissextile,
Vrai
ce qui n'est pas pris en compte dans les
calculs de dates.
Caractéristique archi-connue d'Excel qui se conforme aux normes
économiques nord-américaines qui veulent que l'on compte l'intervalle
de temps à partir du lendemain d'une transaction.
Juste pour le fun.
Faire un calendrier pour février 2004 dans une feuille de calcul, à
partir de A1:
Sub CalendrierCivilise()
Dim lenumero As Integer, lemois As Integer
Dim lejour As Integer, lannee As Integer
Dim i As Byte, j As Byte, k As Byte, lalimite As Integer
Dim ladate As Double
Range("a1").Value = "Dim"
Range("B1").Value = "Lun"
Range("c1").Value = "Mar"
Range("d1").Value = "Mer"
Range("e1").Value = "Jeu"
Range("f1").Value = "Ven"
Range("g1").Value = "Sam"
lemois = Month(Date)
lannee = Year(Date)
lenumero = Weekday(DateSerial(lannee, lemois, 1))
lalimite = Day(DateSerial(lannee, lemois + 1, 1) - 1)
k = 1
For i = 2 To 7
If i > 2 Then
For j = 1 To 7
If k <= lalimite Then
Cells(i, j).Value = k
k = k + 1
Else
Exit For
End If
Next
Else
For j = lenumero To 7
Cells(2, j).Value = k
k = k + 1
Next
End If
Next
End Sub
Caractéristique archi-connue d'Excel qui se conforme aux normes économiques nord-américaines qui veulent que l'on compte l'intervalle de temps à partir du lendemain d'une transaction.
Juste pour le fun.
Faire un calendrier pour février 2004 dans une feuille de calcul, à partir de A1:
Sub CalendrierCivilise() Dim lenumero As Integer, lemois As Integer Dim lejour As Integer, lannee As Integer Dim i As Byte, j As Byte, k As Byte, lalimite As Integer Dim ladate As Double Range("a1").Value = "Dim" Range("B1").Value = "Lun" Range("c1").Value = "Mar" Range("d1").Value = "Mer" Range("e1").Value = "Jeu" Range("f1").Value = "Ven" Range("g1").Value = "Sam" lemois = Month(Date) lannee = Year(Date) lenumero = Weekday(DateSerial(lannee, lemois, 1)) lalimite = Day(DateSerial(lannee, lemois + 1, 1) - 1) k = 1 For i = 2 To 7 If i > 2 Then For j = 1 To 7 If k <= lalimite Then Cells(i, j).Value = k k = k + 1 Else Exit For End If Next Else For j = lenumero To 7 Cells(2, j).Value = k k = k + 1 Next End If Next End Sub