COnvertir les dates

Y compris Power BI, Power Query et toute autre question en lien avec Excel
I
Imed213
Jeune membre
Jeune membre
Messages : 12
Inscrit le : 26 février 2020
Version d'Excel : 2019

Message par Imed213 » 26 février 2020, 15:39

Bonjour,

Cela ne marche que d'un sens, on peut convertir les calendrier grégorien en hégirien mais hégérien en grégorien impossible
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 14'029
Appréciations reçues : 830
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 26 février 2020, 16:10

Steelson a écrit :
26 février 2020, 14:39
Un cycle de 30 années fait 10.278 jours
erreur de ma part ... cela fait 10.631 jours
je repars donc sur de bonnes bases !

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
Avatar du membre
Jean-Eric
Fanatique d'Excel
Fanatique d'Excel
Messages : 16'404
Appréciations reçues : 672
Inscrit le : 27 août 2012
Version d'Excel : 365 Personnel

Message par Jean-Eric » 26 février 2020, 16:41

Re,
Trouvé sur un site anglophone.
A tester !...
Cdlt.
imed213.xlsm
(15.41 Kio) Téléchargé 1 fois
https://www.mrexcel.com/board/threads/h ... on.850748/
Option Explicit
Function G2H(dtGregDate As Date) As String
    ' returns a date in Hijri format for a given western date
    VBA.Calendar = vbCalHijri
    G2H = dtGregDate
    VBA.Calendar = vbCalGreg
End Function

Function H2G(dtHijDate As String) As Date
    ' returns a Gregorian date in from a string containing a Hijri date
    VBA.Calendar = vbCalHijri
    H2G = dtHijDate
    VBA.Calendar = vbCalGreg
End Function
2 membres du forum aiment ce message.
Jean-Eric

Je ne réponds pas aux M.P. non sollicités.
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 14'029
Appréciations reçues : 830
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 26 février 2020, 17:29

Bonne trouvaille.
J'y étais avec un écart d'un jour* au moment où mon micro s'est éteint !!! pft ...

* cela dépend en effet de la région/du pays considéré !! comme indiqué ici
* il se peut qu'il y ait un décalage d'une journée
Capture d’écran (374).png

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 14'029
Appréciations reçues : 830
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 26 février 2020, 17:57

Pour la beauté de la solution et l'exercice intellectuel, je vais reprendre le fichier et je sortirai une formule sans macro :mrgreen:

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 14'029
Appréciations reçues : 830
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 26 février 2020, 20:34

=43355+ENT((C2-1440)/30)*10631+(CHOISIR(C2-1440-30*ENT((C2-1440)/30);354;708;1063;1417;1771;2126;2480;2835;3189;3543;3898;4252;4606;4961;5315;5669;6024;6378;6733;7087;7441;7796;8150;8504;8859;9213;9568;9922;10276;10631))+CHOISIR(B2;1;31;60;90;119;149;178;208;237;267;296;326)-1+A2-1
avec :
jour en A2
mois en B2
année en C2

J'avoue ne pas avoir encore testé sur les dates inférieures au 1/1/1440 (12/09/2018)
Modifié en dernier par Steelson le 27 février 2020, 08:30, modifié 1 fois.

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 14'029
Appréciations reçues : 830
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 27 février 2020, 02:50

petite simplification
=43355+ENT((C2-1440)/30)*10631+(CHOISIR(C2-1440-30*ENT((C2-1440)/30);354;708;1063;1417;1771;2126;2480;2835;3189;3543;3898;4252;4606;4961;5315;5669;6024;6378;6733;7087;7441;7796;8150;8504;8859;9213;9568;9922;10276;10631))+(29*(B2-1)+1+ENT(B2/2)*1)-1+A2-1
Cela fonctionne aussi sur les dates inférieures à 1/1/1440
Modifié en dernier par Steelson le 27 février 2020, 08:30, modifié 1 fois.
1 membre du forum aime ce message.

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
I
Imed213
Jeune membre
Jeune membre
Messages : 12
Inscrit le : 26 février 2020
Version d'Excel : 2019

Message par Imed213 » 27 février 2020, 08:22

Merci pour tout ça marche !
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 14'029
Appréciations reçues : 830
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 27 février 2020, 08:30

Correction d'une petite erreur sur les années 1440 et +/- 30
=43355+ENT((C2-1440)/30)*10631
+SIERREUR((CHOISIR(C2-1440-30*ENT((C2-1440)/30);354;708;1063;1417;1771;2126;2480;2835;3189;3543;3898;4252;4606;4961;5315;5669;6024;6378;6733;7087;7441;7796;8150;8504;8859;9213;9568;9922;10276;10631));0)
+(29*(B2-1)+1+ENT(B2/2)*1)-1+A2-1
Calcul date Hégirien Grégorien.xlsx
(8.86 Kio) Téléchargé 1 fois
1 membre du forum aime ce message.

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
I
Imed213
Jeune membre
Jeune membre
Messages : 12
Inscrit le : 26 février 2020
Version d'Excel : 2019

Message par Imed213 » 27 février 2020, 08:53

Merci et Vous savez comment on peut limiter les dates ? Car je peut mettre le 32/01/1440 ca passe
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message