Nombre de vendredi 13 de ma naissance jusqu'à aujourdhui
Le
Tatanka
Bonsoir,
J'ai adapté une macro trouvée ici :
http://www.docmemo.com/divers/vendredi13.php
me permettant d'obtenir la liste de tous les « vendredi 13 »
de 1945 jusqu'à 2011. Le résultat me satisfait mais par
souci d'apprentissage, comment la modifier pour que cette
liste ne couvre que la période du 10 mai 1945 jusqu'à
la date du jour ? Voici la macro :
Sub Vendredi_13()
Dim Année, Mois, Compteur, NomMois(12)
NomMois(1) = "janvier"
NomMois(2) = "février"
NomMois(3) = "mars"
NomMois(4) = "avril"
NomMois(5) = "mai"
NomMois(6) = "juin"
NomMois(7) = "juillet"
NomMois(8) = "août"
NomMois(9) = "septembre"
NomMois(10) = "octobre"
NomMois(11) = "novembre"
NomMois(12) = "décembre"
For Année = 1945 To 2011
For Mois = 1 To 12
If Weekday(Mois & "/13/" & Année) = 6 Then
Range("A1").Offset(Compteur, 0) = "13 " _
& NomMois(Mois) & " " & Année
Compteur = Compteur + 1
End If
Next Mois
Next Année
End Sub
J'ai adapté une macro trouvée ici :
http://www.docmemo.com/divers/vendredi13.php
me permettant d'obtenir la liste de tous les « vendredi 13 »
de 1945 jusqu'à 2011. Le résultat me satisfait mais par
souci d'apprentissage, comment la modifier pour que cette
liste ne couvre que la période du 10 mai 1945 jusqu'à
la date du jour ? Voici la macro :
Sub Vendredi_13()
Dim Année, Mois, Compteur, NomMois(12)
NomMois(1) = "janvier"
NomMois(2) = "février"
NomMois(3) = "mars"
NomMois(4) = "avril"
NomMois(5) = "mai"
NomMois(6) = "juin"
NomMois(7) = "juillet"
NomMois(8) = "août"
NomMois(9) = "septembre"
NomMois(10) = "octobre"
NomMois(11) = "novembre"
NomMois(12) = "décembre"
For Année = 1945 To 2011
For Mois = 1 To 12
If Weekday(Mois & "/13/" & Année) = 6 Then
Range("A1").Offset(Compteur, 0) = "13 " _
& NomMois(Mois) & " " & Année
Compteur = Compteur + 1
End If
Next Mois
Next Année
End Sub

Poser une question


Bonjour Serge,
Peut-être :
Sub Vendredi_13()
Dim Année, Mois, Compteur, NomMois(12)
NomMois(1) = "janvier"
NomMois(2) = "février"
NomMois(3) = "mars"
NomMois(4) = "avril"
NomMois(5) = "mai"
NomMois(6) = "juin"
NomMois(7) = "juillet"
NomMois(8) = "août"
NomMois(9) = "septembre"
NomMois(10) = "octobre"
NomMois(11) = "novembre"
NomMois(12) = "décembre"
For Année = 1945 To 2011
For Mois = 1 To 12
If Weekday(DateSerial(Année, Mois, 13)) = 6 And _
DateSerial(Année, Mois, 13) > #5/10/1945# Then
Range("A1").Offset(Compteur, 0) = "13 " _
& NomMois(Mois) & " " & Année
Compteur = Compteur + 1
End If
Next Mois
Next Année
End Sub
Cordialement.
Daniel
Ceci ne serait pas suffisant ??
'----------------
Sub Vendredi_13()
Dim Année
Columns(1).Clear
debut = "10/05/1945"
For Année = debut To Date
If Weekday(Année) = 6 And Day(Année) = 13 Then
Range("a" & Cells(Rows.Count, 1).End(3).Row + 1) = Année
End If
Next Année
Columns(1).NumberFormat = "dddd dd mmmm yyyy"
Columns(1).EntireColumn.AutoFit
End Sub
'-----------------------
--
Salutations
JJ
"Tatanka"
j'ai fait 2 autres variations sur le thème
Sub Vendredi_13c()
'on analyse chaque jour entre le 10 mai 45 et aujourd'hui
Dim Année, Mois, Compteur, NomMois(12)
NomMois(1) = "janvier"
NomMois(2) = "février"
NomMois(3) = "mars"
NomMois(4) = "avril"
NomMois(5) = "mai"
NomMois(6) = "juin"
NomMois(7) = "juillet"
NomMois(8) = "août"
NomMois(9) = "septembre"
NomMois(10) = "octobre"
NomMois(11) = "novembre"
NomMois(12) = "décembre"
For jour = DateSerial(1945, 5, 10) To Now
If Weekday(jour) = 6 And Day(jour) = 13 Then
Range("C1").Offset(Compteur, 0) = "13 " & " " & NomMois(Month(jour))
& " " & Year(jour)
Compteur = Compteur + 1
End If
Next jour
End Sub
Sub Vendredi_13d()
' on analyse que le 13 de chaque mois, en ajoutant 1 mois à chaque fois, du
13/5/45 à aujourd'hui
Dim Année, Mois, Compteur, NomMois(12)
NomMois(1) = "janvier"
NomMois(2) = "février"
NomMois(3) = "mars"
NomMois(4) = "avril"
NomMois(5) = "mai"
NomMois(6) = "juin"
NomMois(7) = "juillet"
NomMois(8) = "août"
NomMois(9) = "septembre"
NomMois(10) = "octobre"
NomMois(11) = "novembre"
NomMois(12) = "décembre"
Mois = 5
Do While DateSerial(1945, Mois, 13) < Now
jour = DateSerial(1945, Mois, 13)
If Weekday(jour) = 6 Then
Range("D1").Offset(Compteur, 0) = "13 " & NomMois(Month(jour)) & " "
& Year(jour)
Compteur = Compteur + 1
End If
Mois = Mois + 1
Loop
End Sub
Michel
Jacky m'a fait prendre conscience qu'il suffit d'écrire dans mes 2 versions
Range("D1").Offset(Compteur, 0) = jour
avec le format qui va bien
Michel
Jacky à raison, un test sur le jour "Vendredi" et sur la valeur du
jour "13" suffit largement. Pas besoin de charger un tableau avec les
mois.
Et puis même, on peut améliorer le code en passant en paramètre la
date de début et la date de fin