Comment faire pour prise en compte date 08 MARS 68

Bonsoir,

Je recherche depuis des heures une solution qui me permettrait d'afficher correctement les dates avant J. C. et après afin de pouvoir faire certains calculs.

Je joins le fichier.

Merci par avance pour toute réponse.

Bonjour

Une solution

=TEXTE(DATE(2068;3;8);"jj mmm")&" 00"&TEXTE(DATE(2068;3;8);"aa")

date réelle: 8/3/2068

ou format personnalisé: jj/mm/"00"aa

A+ François

Bonsoir,

La réponse n'est pas tout à fait ce que je souhaitais.

En effet je souhaite que les dates de naissance/décès avant ou après J.C. s'affiche correctement dans mon fichier.

Exemple : date de naissance 12 juin -90 en (donc nait 10 ans avant J.C.)

date de décès 15 mai 85 (donc mort après J.C.)

Evidemment, je souhaite pouvoir calculer l'âge de décès ainsi que délais entre décès et aujourd'hui. Il en va de même pour les dates d'intronisation et les calculs qui en découlent.

Il faut donc que mes formules VBA puissent reconnaitre les dates. Il sera peut-être les modifier.

Je joins le fichier

Merci pour vos réponses ou solutions.

Bonsoir

Excel ne peut pas traiter de date inferieur à 1900...

Entre le 15/10/2090 et le 5/4/2040 il y a 10jours, 6 mois et 50 ans

comme entre le 15/10/90 et le 5/4/40...

Je n'ai pas d'autre solution

A+ François

Bonsoir,
je pense que tu peux traiter ton soucis de date par une translation temporelle comme l'a suggéré fanfan38. L'idée serait d'avoir une fonction pour passer des dates anciennes aux dates excel et une fonction qui fait l'inverse pour afficher correctement les dates dans ta feuille de calcule.

Public Const ANNEE_OFFSET As Long = 3000

Function DATE_TO_EXCEL(old_date As String) As Variant
    Dim d As Long, m As Long, y As Long
    Dim parts() As String

    On Error GoTo Err

    parts = Split(old_date, "/")
    If UBound(parts) <> 2 Then
        DATE_TO_EXCEL = CVErr(xlErrValue)
        Exit Function
    End If

    d = CLng(parts(0))
    m = CLng(parts(1))
    y = CLng(parts(2)) + ANNEE_OFFSET

    newDate = DateSerial(y, m, d)

    DATE_TO_EXCEL = newDate

    Exit Function
Err:
    DATE_TO_EXCEL = CVErr(xlErrValue)
End Function

Function OLD_DATE(exl_date As Variant) As String
    Dim d As Long, m As Long, y As Long
    Dim dt As Date

    On Error GoTo Err

    dt = CDate(exl_date)

    d = Day(dt)
    m = Month(dt)
    y = Year(dt) - ANNEE_OFFSET

    OLD_DATE = Format(d, "00") & "/" & Format(m, "00") & "/" & CStr(y)

    Exit Function
Err:
    OLD_DATE = CVErr(xlErrValue)
End Function

Ainsi pour calculer un nombre de jour entre deux dates tu peux faire : =JOURS(DATE_TO_EXCEL(B1); DATE_TO_EXCEL(B2))

J'espère que ceci t'aidera à avancer.
À bientôt.

Bonjour,

Je ne comprends pas très bien.

J'essais depuis un moment et je n'obtiens absolument pas le résultat escompté.

Je joins le fichier pour vous donner une idée de ce que je veux obtenir à la fin.

Je dois vous dire que je ne suis pas très doué dans le domaine VBA, Macro.

Merci pour toutes les suggestions.

Bonjour,

J'ai modifié légèrement la formule VBA pour l'adapter au format de date que tu utilises, tu peux maintenant saisir les dates complètes (26 février -80) ou les formes concises (26/02/-80) à ta convenance.

J'ai également joint un exemple de formule pour Saint Pierre. À noter qu'elle n'est pas tout à fait exacte puisque l'an 0 n'existe pas.

8horus-sekmeb.xlsm (34.80 Ko)

J'espère que ceci t'aidera à avancer.
À bientôt.

Bonsoir,

Merci pour la solution apportée à mon problème.

Pour l'instant, je laisse de côté car je ne parviens pas à le résoudre entièrement puisque les calculs ne se font pas correctement.

Je vais laisser décanter un peu et je reprendrai plus tard.

Bonne soirée

re, un autre essai,

Savez qu'il y avaient des correction sur le calendrier Grégorien dans les années 1580-1700 dépendant de la réligion et de la pays. Donc tout ce qu'on a avant ces années est plutôt relatif ...

9horus-sekmeb.xlsb (23.58 Ko)

Bonjour,

Je viens de regarder la solution proposée.

A priori, je ne comprends pas pourquoi j'obtiens ces résultats (voir le fichier joint) lorsque je manipule les cellules ou les renseigne.

De plus existe-t-il une solution afin que je ne soit pas obligé de taper le signe ' avant chaque date

Merci pour les réponses apportées

4horus-sekmeb.xlsb (24.13 Ko)

.

re,

les colonnes B:C et F:H sont des textes maintenant, donc quand vous tapez 1/1/25, ce sera le premier janvier de 25

et j'ai enlevé le "@" dans la formule. C'est mieux maintenant ? Sinon, c'est quoi la version de votre excel (svp. à modifier dans votre profil)

Bonjour,

J'ai toujours le problème concernant les cellules qui se bloque sur #NOM?.

Je joins le fichier

Merci pour les réponses apportées.

6horus-sekmeb.xlsb (25.40 Ko)

re,

je ne le sais pas, une différence entre les versions ??? J'ai ajouté un "application.volatile" dans la fonction oubien vous pouvez pousser sur le "F9" pour récalculer la feuille. Ces dates, vous pouvez écrire "19 mars -1999" par exemple (max -2000)

Bonsoir,

Toujours problème avec formules de calcul si je modifie les cellules des colonnes B-C-F-G-H, les cellules des colonnes D-E et I ne font pas les calucls mais j'obtiens #NOM?

Si je double clique sur les cellules contenant les formules, j'obtiens là aussi #NOM?

4horus-sekmeb.xlsb (22.37 Ko)

Je joins le fichier pour vous permettre de comprendre.

Merci par avance pour

re, l'année maximale est 9999 et comme on est maintenant en 2025 et que si on ajoute des multiples de 2000 années, pour avoir le même calendrier, le max que vous pouvez corriger pour le moment, c'est 6000, donc iYears=6000. Et cela me semble même ridicule d'utiliser le calendrier grégorien pour une date de 4100 avant J.C. Je ne connais pas le calendrier Egyptien

10horus-sekmeb-3.xlsb (26.33 Ko)

Bonsoir,

Merci pour les explications concernant l'intervalle de date. Il me semble avoir déjà vu cela il y a longtemps déjà et un peu oublié depuis.

Cependant j'ai toujours le problème concernant mes cellules contenant un calcul. Elles affichent #NOM?

La macro a l'air juste du moins je le pense. Je l'ai relu et je ne vois à priori aucune erreur mais c'est-on jamais.

Je joins le fichier pour que vous m'aidiez à corriger cet incident. Dois-je définir des noms et surtout dans quel but et comment.

Merci pour votre aide.

Bonne soirée.

6horus-sekmeb.xlsb (22.00 Ko)

re,

Y-a-t-il des "#nom" quand vous ouvrez le fichier et après que vous poussez F9 ?

Bonsoir,

Quand j'ouvre le fichier tout est ok.

Si je change les dates ou entre de nouvelles, j'obtiens directement #NOM? et non le résultat de la formule.

La touche F9 n'a aucun incident.

Je transmets le fichier (Ce sont les cellules en rouge qui posent problème). Je commence à me demander si les formules ne comportent pas une erreur ou peut-être la macro datediff_AMJ2.

J'ai tout relu et je ne vois pas où se trouve la cause source du bug. Je reconnais que cela commence par tout se mélanger dans mon petit cerveau.

Merci par avance pour les suggestions proposées pour résoudre le problème récurrent .

Bonne soirée.

6horus-sekmeb.xlsb (25.98 Ko)

re,

ily avait une faute dans la formule

13horus-sekmeb-5.xlsb (28.64 Ko)

de la colonne I, j'espère que cela donne le résultat voulu maintenant.

J'ai ajoute 10 lignes avec des date récentes, vous avez des "#NOM" avec des dates ?

Bon, si vous voulez des dates de 1.000.000 avant JC sont permis.

Si la 2ième date est avant la première, j'ajoute "(-)" comme préfix.

Et c'est un tableau structuré (avec l'entête en ligne 3 caché) maintenant, c'est plus pratique ... .

Bonjour,

Lorsque j'ouvre votre fichier tout est parfait mais dès que je souhaite l'enregistrer, il faut que j'active les modification et là, toutes les cellules qui contiennent des formules de calculs passent en #NOM?.

Je ne sais absolument pas comment remédier à cela. C'est peut-être une manipulation toute bête mais je ne sais vraiment pas laquelle se serait. Je cherche et teste pourtant de nombreuses solutions que j'ai en tête ou que je trouve via les forums mais pour l'instant aucunes remédient au problème.

La touche F9 ou ALT+F9 ne ne donnent aucun résultat.

Je reprendrai certainement l'affaire vers 18h00 ce soir.

Je vous transmets le fichier pour visualiser.

Je vous remercie pour tout le temps que vous avez déjà passé sur le problème.

Bonne fin de journée.

Rechercher des sujets similaires à "comment prise compte date mars"