Citation (jmdubreucq @ 17/10/2011 à 14:17)

Si elle tourne sous Windows ça m'intéresse ...
elle devrait, à confirmer (elle ne contient pas de virus...pour ceux qui ont la chance de savoir ce que c'est

)
Le plus long est la reconnaissance du mois républicain.
La seule détection d'erreur que j'ai ajoutée est la présence d'un mois inconnu. Je n'ai pas fait la vérification des jours complémentaires par exemple (6 en les ans 3, 7 et 11, et 5 sinon).
L'indentation n'apparaît pas ci-dessous
'---------------------------------------------------
Sub Rep2Greg()
'conversion de calendrier républicain -> grégorien
'sur la ligne dont le numéro se trouve dans la variable "ligne" :
'source : date républicaine en colonnes 1, 2 et 3
'(attention à respecter - ou modifier - les abréviations des mois républicains ci-dessous)
'résultat : date grégorienne en colonnes 4, 5 et 6
'la variable "ligne" peut servir de compteur à une instruction FOR...NEXT
'ou bien être la ligne active dans la feuille de calcul avec l'instruction
'ligne = SELECTION.ROW
'jour, mois et an républicains
jr = Cells(ligne, 1)
Select Case Cells(ligne, 2)
Case "Vd": mr = 0
Case "Br": mr = 1
Case "Fr": mr = 2
Case "Ni": mr = 3
Case "Pl": mr = 4
Case "Vt": mr = 5
Case "Ge": mr = 6
Case "Fl": mr = 7
Case "Pr": mr = 8
Case "Me": mr = 9
Case "Th": mr = 10
Case "Fd": mr = 11
Case "Cp": mr = 12
Case Else: Cells(ligne, 2).Select: MsgBox "mois non identifié": End
End Select
ar = Cells(ligne, 3)
'nombre de jours écoulés depuis le "1er vendémiaire an 0" = 22/09/1791
nb_jour = jr + 30 * mr + 365 * ar + Int(ar / 4)
'recalage de la date et affichage
date_gregorienne = DateAdd("d", nb_jour, "22-Sep-1791")
Cells(ligne, 4) = Day(date_gregorienne)
Cells(ligne, 5) = Month(date_gregorienne)
Cells(ligne, 6) = Year(date_gregorienne)
End Sub
'---------------------------------------------------