Cette source remplit trois tableaux pour compter :
-le nb de jours par mois (nb de lundi, de mardi etc)
-le nombre de jours pairs (nb de lundi pairs, mardi pairs ...etc)
-le nombre de jours impairs (nb de lundi pairs, mardi pairs ...etc)
Source / Exemple :
' 1 2 3 4 5 6 7 1 ............12
Dim TbFrequenceJour(1 To 7, 1 To 12) As Integer ' (l,m,m,j,v,s,d / janvier,..., decembre)
Dim TbFrequenceJourPAIR(1 To 7, 1 To 12) As Integer ' (l,m,m,j,v,s,d / janvier,..., decembre)
Dim TbFrequenceJourIMPAIR(1 To 7, 1 To 12) As Integer ' (l,m,m,j,v,s,d / janvier,..., decembre)
Private Sub Command2_Click()
Dim ChronoDebut As Date
Dim ChronoFin As Date
Dim DateDebut As Date
Dim MaDate As Date
Dim NbJours As Integer
Dim TempText As String
Dim Jour As String
Dim Mois As String
Dim Pair As Boolean
Dim Colonne As Integer
DateDebut = CDate("01/01/2005")
NbJours = 365
'compter le nombre de lundi, mardi, mercr... dans chaque mois.
'initilisation du tableau
For i = 1 To 7
For j = 1 To 12
TbFrequenceJour(i, j) = 0
TbFrequenceJourPAIR(i, j) = 0
TbFrequenceJourIMPAIR(i, j) = 0
Next j
Next i
MaDate = DateDebut
While MaDate < CDate("31/12/2005")
TempText = Format(MaDate, "dddd d mmmm yyyy", vbUseSystemDayOfWeek, vbUseSystem)
'recupère le jour de la semaine par les deux premieres lettres
Jour = Left(TempText, 2)
'recupère le jour pair ou impair
If Int(Left(MaDate, 2) / 2 * 10) = 5 Then Pair = False Else Pair = True
'recupère le mois
Mois = CInt(Mid(MaDate, InStr(MaDate, "/") + 1, 2))
'remplit le tableau
'compte les frequence en jours
TbFrequenceJour(FctNumJour(Jour), Mois) = TbFrequenceJour(FctNumJour(Jour), Mois) + 1
'compte les frequences paires/impaires
Select Case Pair
Case True
TbFrequenceJourPAIR(FctNumJour(Jour), Mois) = TbFrequenceJourPAIR(FctNumJour(Jour), Mois) + 1
Case False
TbFrequenceJourIMPAIR(FctNumJour(Jour), Mois) = TbFrequenceJourIMPAIR(FctNumJour(Jour), Mois) + 1
End Select
MaDate = MaDate + 1
DoEvents
Wend
Debug.Print DateDebut + 31
End Sub
Private Function FctNumJour(DeuxLettresJour As String) As Integer
Select Case DeuxLettresJour
Case "lu"
FctNumJour = 1
Case "ma"
FctNumJour = 2
Case "me"
FctNumJour = 3
Case "je"
FctNumJour = 4
Case "ve"
FctNumJour = 5
Case "sa"
FctNumJour = 6
Case "di"
FctNumJour = 7
Case Else
FctNumJour = 0
End Select
End Function
Conclusion :
merci à vbfrance et à toutes ces sources, bravo à tous.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.