tri de dates antérieures à 1900

gddg

XLDnaute Nouveau
Bonjour à la communauté

je fais en amateur un travail généalogique.
donc je me suis constitué une base d'ascendants avec des dates antérieures à 1900.
mais comment trier ces dates? elles sont écrites en format date : 10/08/1862 par exemple.
je suis sous Excel 2007 et le tri ne se fait que sur le jour.

avec l'espoir chevillé au corps que vous pourrez de me sortir de ce mauvais pas.
Salutations méridiennes! bon appétit!
Gérard.
 

Roland_M

XLDnaute Barbatruc
Re : tri de dates antérieures à 1900

bonjour

personnellement j'ai résolu ce problème très simplement !
toutes les cellules en question sont aux format Date
j'entre toutes les dates avec en premier le signe ' exemple '01/01/2010

et tout mes tris sont effectués par macro
en 1' je load la colonne date dans un tableau AS Date
--- (à savoir si par exp Var = Cells(lig,Col) Var est = 01/01/2010 sans le signe ' )
en 2' je tri le tableau Date
en 3' je resave le tableau en remettant le signe '
--- exemple Cells(Lig,Col) = "'" & Tableau(x)
 

jeanpierre

Nous a quitté
Repose en paix
Re : tri de dates antérieures à 1900

Re,

Personnellement j'ai résolu ce problème, lorsque j'en avais encore besoin, en travaillant en Jours Juliens, c'est-à-dire de l'an -4712 jusqu'où l'on veut. On peut même étendre à loisir avant -4712 cela laisse de la marge.

Il faudrait que je retrouve mes fichiers car j'ai perdu plusieurs DD depuis et je n'en ai pas sur le présent poste. Mais au besoin je pourrai refaire, ce n'est que du calcul arithmétique.

Quoiqu'il en soit la macro de JW devrait résoudre plus simplement.

Jean-Pierre
 

Roland_M

XLDnaute Barbatruc
Re : tri de dates antérieures à 1900

re

salut JeanPierre !

mais si !

je met ma colonne au format date exemple colonne A
j'entre en A1 ceci
'01/01/1782
ça ne pose aucun problème puisque Excel considère que c'est de l'alphan
et mes routines traitent comme décrit ci-dessus
j'ai aucun problème tout est traité dans un tableau as date !


EDIT:
pour notre ami si mon procédé l'interresse
Code:
'Exemple de Tri avec une Liste() dimensionnée As Date
Sub TriListe()
Dim VarTemp As Date
Deb = LBound(Liste()): Fin = UBound(Liste())
X = Fin \ 2
Do While X
 For A = Deb To Fin - X
  If Liste(A) > Liste(A + X) Then
     VarTemp = Liste(A): Liste(A) = Liste(A + X): Liste(A + X) = VarTemp
     For B = A - X To Deb Step -X
      If Liste(B + X) >= Liste(B) Then Exit For
      VarTemp = Liste(B): Liste(B) = Liste(B + X): Liste(B + X) = VarTemp
     Next
  End If
 Next: X = X / 2
Loop
End Sub
 
Dernière édition:

jeanpierre

Nous a quitté
Repose en paix
Re : tri de dates antérieures à 1900

Re,

A vrai dire je n'ai pas testé tu t'en doute et comme je suis un adepte de la lecture rapide, ce qui n'est pas forcément l'idéal sur du code même s'il n'y a que 3 lignes.....

Si j'ai un moment ce tantôt je testerai car à la relecture tu as, sans doute, raison.

Pour cela que j'avais dit aussi "sauf erreur" mais j'assume mes torts.

Jean-Pierre
 

gddg

XLDnaute Nouveau
Re : tri de dates antérieures à 1900

Bonjour gddg,

Regarde ce lien : Excel User Tip: Working with pre-1900 dates

Il devrait pouvoir t'aider.

Bonne journée.

Jean-Pierre

merci pour ta prompte réponse!
mais je ne suis pas un as de la programmation.
alors je vais m'en sortir ainsi : en passant par "données" "convertir" et j'obtiendrai 3 colonnes : 1 pour les jours, 1 pour les mois, 1 pour les années.
et ainsi je pourrai faire un tri sans problème.

mais je retiens tout de même ta proposition que je soumettrai à un ami plus grand clerc que moi dans la pratique d'excel.(pour l'instant ilest sur les pistes de neige!)
bonne fin de journée.
et surtout bon nouvel an chinois!
que pétaradent les formules d'excel!!
Gérard
 

gddg

XLDnaute Nouveau
Re : tri de dates antérieures à 1900

bonjour

personnellement j'ai résolu ce problème très simplement !
toutes les cellules en question sont aux format Date
j'entre toutes les dates avec en premier le signe ' exemple '01/01/2010

et tout mes tris sont effectués par macro
en 1' je load la colonne date dans un tableau AS Date
--- (à savoir si par exp Var = Cells(lig,Col) Var est = 01/01/2010 sans le signe ' )
en 2' je tri le tableau Date
en 3' je resave le tableau en remettant le signe '
--- exemple Cells(Lig,Col) = "'" & Tableau(x)

merci aussi pour ta prompte réponse!
Comme je l'indiquais à Jean Pierre je vais pratiquer plus simplement car je ne sais pas faire les indications que tu nous donnes.
mais je retiens la solution! et vais me pencher dessus avec l'aide d'un ami dès qu'il reviendra de la neige!
bonne fin de journée!
bon week end et mille mercis pour cette communauté agissante!

PS : question subsidaire : existe-t-il une façon de transfomer "rapidement" des dates révolutionnaires en dates du calendrier julien? du style 13/niv/13.
là aussi je suis preneur!

et si Jean Pierre a aussi une idée!! alors ce sera le festival!
Gérard
 

ROGER2327

XLDnaute Barbatruc
Re : tri de dates antérieures à 1900

Bonjour à tous
Le calendrier grégorien est périodique, de période égale à 400 ans. Sur cette base, et en supposant que les dates à traiter sont dans la colonne A, je place la formule suivante dans une colonne auxiliaire :
Code:
[B][COLOR="DarkSlateGray"]=SI(ESTNUM(A1);
DATE(400+ANNEE(A1);MOIS(A1);JOUR(A1));
DATEVAL(GAUCHE(A1;CHERCHE("/";A1;4))&400+DROITE(A1;4)))[/COLOR][/B]
J'obtiens les dates décalées de +400 ans et j'applique le tri en prenant la colonne auxiliaire comme clef de tri.
En prime, j'obtiens le rang du jour dans la semaine et le n° de série du jour (base 1 le 1/1/1900) débarrassés de l'anomalie du 29 février 1900.
Voir le classeur joint.​
ROGER2327
#2755
 

Pièces jointes

  • tri de dates antérieures à 1900_2755.xls
    19 KB · Affichages: 133

haonv

XLDnaute Occasionnel
Re : tri de dates antérieures à 1900

Bonjour forum ,

Une solution "système D" qui évite les macros, qui devrait marcher de l'an -5100 à l'an 2999.
Je viens de voir que c'est une autre forme de la solution de roger.
 

Pièces jointes

  • pour gddg.xls
    26 KB · Affichages: 144

hoerwind

XLDnaute Barbatruc
Re : tri de dates antérieures à 1900

Bonjour, salut à vous tous,

Toutes ces astuces (j'employais normalement celle du + 400 ans) sont plus belles les unes que les autres, mais elles ne résolvent pas le décalage des 10 jours au passage du calendrier julien au calendrier géorgien.

Et tous efforts pour pallier à une erreur manifeste et inacceptable de la part de Microsoft.
Il aurait mieux fallu consacrer son temps à la corriger au lieu de remodeler la barre d'outils (ruban), qui de plus n'est appréciée par personne !

Sans vouloir faire de publicité, il est toutefois bon de savoir que le tableur Calc (OOo) ne comporte pas ces erreurs et que son téléchargement est gratuit !
Les calculs avant 1900 s'effectuent sans problème, il est tenu compte du décalage des 10 jours et le 29 février 1900 n'existe pas (trois bonnes raisons ...).
 

ROGER2327

XLDnaute Barbatruc
Re : tri de dates antérieures à 1900

(...)

Et tous efforts pour pallier à une erreur manifeste et inacceptable de la part de Microsoft.
Il aurait mieux fallu consacrer son temps à la corriger au lieu de remodeler la barre d'outils (ruban), qui de plus n'est appréciée par personne !

(...)
Chaleureusement applaudi des deux mains et des deux pieds !


Merci, hoerwind...​
ROGER2327
#2759
 

Statistiques des forums

Discussions
312 211
Messages
2 086 299
Membres
103 173
dernier inscrit
Cerba95