Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/12/2011, 18h08   #1
Invité de passage
 
Pierre Jégou
Inscription : février 2010
Messages : 3
Détails du profil
Informations personnelles :
Nom : Pierre Jégou

Informations forums :
Inscription : février 2010
Messages : 3
Points : 1
Points : 1
Par défaut Conversion d'une date du calendrier républicaine en date du calendrier grégorien

Bonjour à tous,

Je recherche le code VBA qui me permettrait de convertir une date écrite dans le calendrier républicain en une date du calendrier grégorien.

Exemple : 12 messidor An IX en 1 juillet 1801

J'essaie d'élaborer une petite application en Access 2010 pour saisir des données généalogiques.

Il existe des convertisseurs de dates, mais je souhaiterais que la conversion se fasse au moment de la saisie.

Un grand merci d'avance pour les renseignements que vous pourriez me fournir.
Pappy56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 11h03   #2
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 090
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 090
Points : 11 620
Points : 11 620
Bonjour,

Tu as quelque chose sur les calendriers ici :

http://mhubiche.ftp-developpez.com/v...ions_dates.pdf

Pour la mise en place il te faut traiter le problème sur le AfterUpdate.

Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2011, 00h38   #3
Invité de passage
 
Pierre Jégou
Inscription : février 2010
Messages : 3
Détails du profil
Informations personnelles :
Nom : Pierre Jégou

Informations forums :
Inscription : février 2010
Messages : 3
Points : 1
Points : 1
Bonsoir Loufab et un grand merci pour ta réponse.

Je viens de lire avec attention le document que tu m'as indiqué : cela ne répond pas à mon problème.
Apparemment, le problème semble difficile à résoudre par des fonctions.

Après réflexion, je vais traiter le problème autrement : je vais élaborer une table avec 2 champs, l'un au format du calendrier grégorien, l'autre au format du calendrier républicain (cela demandera un peu de temps, mais il existe des convertisseurs pour cela).

Dans la petite application que je souhaite créer, quand je voudrais traduire une date d'un calendrier dans l'autre, il suffira d'utiliser DLookUp () pour obtenir la réponse.

Merci encore à toi, bien amicalement,
Pappy56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2011, 20h15   #4
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 206
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 206
Points : 5 255
Points : 5 255
Salut,

Tu peux t'en sortir avec des fonctions VBA à mettre dans 1 module :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
Function bissextile(Annee As Integer) As Boolean
bissextile = ((Annee - 3) Mod 4) = 0
 
End Function
 
Public Function ConversionDateGregorienRepublicain(dt1 As Date) As String
Dim nj As Long
Dim nm As Long
Dim na As Integer
 
nj = DateDiff("d", #9/22/1792#, dt1)
na = 1
 
Do
 
   If bissextile(na) Then
      If nj < 366 Then
         Exit Do
      End If
   Else
      If nj < 365 Then
         Exit Do
      End If
   End If
 
   If bissextile(na) Then
      nj = nj - 366
   Else
      nj = nj - 365
   End If
 
   na = na + 1
 
Loop
 
nm = (nj \ 30) + 1
nj = (nj Mod 30) + 1
 
ConversionDateGregorienRepublicain = (nj & "/" & nm & "/" & na)
 
End Function
 
Public Function ConversionDateRepublicainGregorien(dt1 As String) As Date
Dim nj As Long
Dim nm As Long
Dim na As Integer
 
na = (Year(dt1) - 2000)
nm = Month(dt1)
nj = Day(dt1) + (nm - 1) * 30
 
Do Until (na = 1)
 
   na = na - 1
 
   If bissextile(na) Then
      nj = nj + 366
   Else
      nj = nj + 365
   End If
 
Loop
 
ConversionDateRepublicainGregorien = DateAdd("d", nj - 1, #9/22/1792#)
 
End Function
Ici 4/13/1 désigne le 4ème jour complémentaire de l'An I

4/1/1 désigne le 4ème jours du mois Vendémiaire de l'en I.

A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 19/12/2011, 19h21   #5
Invité de passage
 
Pierre Jégou
Inscription : février 2010
Messages : 3
Détails du profil
Informations personnelles :
Nom : Pierre Jégou

Informations forums :
Inscription : février 2010
Messages : 3
Points : 1
Points : 1
Bonsoir User,

J'ai pris connaissance de ta réponse hier soir, mais j'ai voulu prendre le temps de bien comprendre ta proposition : je suis un Pappy bidouilleur, il me faut un certain temps !!!.

Effectivement, c'est beaucoup plus "élégant" que ce que je m'étais résolu à faire pour obtenir le même résultat.

Un très grand merci à toi, même s'il me faudra peaufiner un peu pour obtenir ce que je souhaite exactement (le nom du mois en républicain par exemple : un Select Case résoudra ce petit problème).

Je suis très heureux de voir qu'un professionnel de l'informatique accepte de renseigner le petit amateur que je suis.

Merci encore et à une prochaine fois peut-être.

Bien amicalement...
Pappy56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h39.


 
 
 
 
Partenaires

Hébergement Web