> Tous les forums > Forum Bureautique
 Excel 2016 ne trie pas convenablement les date du XIXe et du XXe s
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
lafricain
  Posté le 15/01/2018 @ 23:32 
Aller en bas de la page 
Petit astucien

Bonjour,

Pour quelle raison les dates avant le 1 janvier 1900

sont-elles tassées à gauche et celles du 1er janvier 1900 et suivantes sont-elles tassées à droite. En outre pourquoi toutes les dates avant le 01-01-1900 sont elles à la fin du tri mais bien sûr dans leur ordre chronologique tandis que celles du 01-01-1900 et suivantes sont au début du tri mais toujours dans leur propre ordre chronologique Que peut-on faire pour remédier à cette situation? Merci. L'Africain

Publicité
ferrand
 Posté le 16/01/2018 à 04:06 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonjour,

Excel ne reconnaît de dates qu'à partir du 1er janvier 1900, et stocke les dates comme nombres (appelés numéros de série, le 1 étant le 1er janvier 1900). Etant des nombres, les dates se cadrent à droite dans la cellule, comme tout nombre.

Les dates antérieures au 1er janvier 1900 ne sont pas reconnues comme dates, Excel les considère comme du texte, qui ainsi se cadre à gauche dans la cellule.

Lors d'un tri, les nombres sont placés avant le texte (dans l'ordre croissant), les dates antérieures au 1er janvier 1900 se retrouvent donc à la fin.

Il n'y a pas de solution simple avec Excel. Il faut aussi tenir compte que les dates antérieures au 1er mars sont erronées : Microsoft a introduit un 29 février 1900 qui n'a jamais existé (pour de basses raisons de concurrence avec Lotus à l'époque, qui avait fait cette erreur) et n'a jamais rectifié, ce qui fait qu'Excel considère le 1er janvier 1900 comme un dimanche alors qu'il s'agissait d'un lundi.

VBA gère également les dates comme numéros de série, mais sans les erreurs d'Excel et reconnaît les dates antérieures à 1900. On peut imaginer de travailler sur les dates entièrement en VBA, mais ce n'est pas une mince affaire :

- il y a accord entre Excel et VBA à partir du 1er mars 1900 (n° de série : 61)

- il y a décalage d'un jour dans les n° de série 1 à 60 : le 1 est pour VBA le 31 déc. 1899 (1er janv. 1900 pour Excel, le 60 est pour VBA le 28 févr. 1900 (le fameux 29 pour Excel !)

- et pour VBA il y a un n° de série 0 (30 déc. 1899) et des n° négatifs : jusqu'à -657434 que VBA considère comme le 1er janv. de l'an 100

- mais VBA gère les dates exclusivement en calendrier grégorien proleptique (comme si le calendrier grégorien avait toujours existé, alors que son entrée en vigueur est le 15 oct. 1582 et que cela s'est échelonné jusqu'au XXe siècle bien entamé selon les pays).

Mais si on travaille en VBA, il faudra empêcher Excel d'intervenir sur les résultats... Je ne vois qu'un seul moyen, c'est de forcer l'inscription des dates en format Texte. On aura aussi diverses corrections à opérer selon les plages de dates que l'on couvre...

Cordialement.

lafricain
 Posté le 17/01/2018 à 05:34 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Ferrand,

Tu es un puis de science et à chacune de tes interventions je constate chaque fois qu'il est plus profond que je ne me l'imaginais.

Merci mille fois

L'Africain

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Sujets relatifs
excel 2016 format date
Excel 2016 Tableau Croisé Dynamique (TCD)
suite 2016 word dans excel
excel 2016 regroupement dans tableau croisé dynamique (tcd)
Insérer date excel
Excel 2016 en-tête et pied de page
Formule Excel/VBA insertion date fixe conditionnellement
Problème de date dans Excel
EXCEL: recherche nombre selon date
comment pouvoir personnaliser les onglet et fonctions sous excel 2016
Plus de sujets relatifs à Excel 2016 ne trie pas convenablement les date du XIXe et du XXe s
 > Tous les forums > Forum Bureautique