Problème de reconnaissance de date

Bonsoir, je viens de m'inscrire car je suis bloqué depuis des heures sur un vrai casse-tête et j'aurais besoin d'aide s'il vous plaît:

  • J'ai téléchargé un dossier excel comprenant des dates qui sont en format anglais (MM/JJ/AAAA) au lieu de (JJ/MM/AAAA) cependant ils sont inutilisables car justement non-reconnus par mon excel français (les dates sont automatiquement collé à gauche de la cellule). J'ai essayé tout ce qui me venais mais rien y fait puisque excel ne reconnait pas les dates en tant que telles, toutes mes manipulations sont donc vouées à l'échec.
  • J'ai arpenté tous les forums possibles qui traitent de près ou de loin de ce sujet, donc soit j'applique mal les consignes soit mon problème nécessite une solution qui n'est pas dans mes cordes.
Le problème est assez "urgent" et je ne saurais que trop remercier la personne trouvant la solution miracle...

8excel.xlsx (19.34 Ko)

Bonjour neirela,

voici ton fichier modifié :

30excel.xlsm (25.99 Ko)

Ctrl e ➯ travail effectué

attention : vérifie bien toutes les dates !


si ton sujet est résolu, merci de cliquer sur à droite de (coin haut droit du post)

ça permet aussi de clôturer le fil de la discussion (toi seul peut le faire, car c'est toi qui a créé ce sujet).

dhany

Tout d'abord un énorme merci Dhany, pour avoir réussi à faire passer toutes les formules en tant que date.

Cependant il y a toujours un problème, comme dans mes essais certaine dates sont en jj/mm/aaaa mais d'autres restent dans le format anglais initial (celles qui étaient non reconnues en général). Et donc bien sûr c'est problématique car sur ses 481 lignes, impossible de les rectifier individuellement à la main. Et elles sont inutilisables si je veux par exemple trier les valeurs qui lui sont associées par mois.

Est ce que tu n'aurais pas une explication ou une fonction pouvant remédier à cela ?

Bonjour,

tu peux le faire aussi par formule

=SIERREUR(CNUM(STXT(SI(ESTNUM(A2);TEXTE(A2;"mm/jj/aaaa");A2);CHERCHE("/";SI(ESTNUM(A2);TEXTE(A2;"mm/jj/aaaa");A2))+1;CHERCHE("/";SI(ESTNUM(A2);TEXTE(A2;"mm/jj/aaaa");A2);4)-CHERCHE("/";SI(ESTNUM(A2);TEXTE(A2;"mm/jj/aaaa");A2))-1)&"/"&GAUCHE(SI(ESTNUM(A2);TEXTE(A2;"mm/jj/aaaa");A2);CHERCHE("/";SI(ESTNUM(A2);TEXTE(A2;"mm/jj/aaaa");A2))-1)&"/"&STXT(SI(ESTNUM(A2);TEXTE(A2;"mm/jj/aaaa");A2);CHERCHE("/";SI(ESTNUM(A2);TEXTE(A2;"mm/jj/aaaa");A2);4)+1;4));"")

MAIS, mon problème comme pour Dhany que je salue est que je pense que la date du 12/07/2018 est vraisemblablement le 7 déc ... à confirmer pour revoir la copie !

4excel.xlsx (34.11 Ko)

Si le MAIS ci-dessus est avéré, alors ma formule devient

=SIERREUR(CNUM(STXT(SI(ESTNUM(A2);TEXTE(A2;"jj/mm/aaaa");A2);CHERCHE("/";SI(ESTNUM(A2);TEXTE(A2;"jj/mm/aaaa");A2))+1;CHERCHE("/";SI(ESTNUM(A2);TEXTE(A2;"jj/mm/aaaa");A2);4)-CHERCHE("/";SI(ESTNUM(A2);TEXTE(A2;"jj/mm/aaaa");A2))-1)&"/"&GAUCHE(SI(ESTNUM(A2);TEXTE(A2;"jj/mm/aaaa");A2);CHERCHE("/";SI(ESTNUM(A2);TEXTE(A2;"jj/mm/aaaa");A2))-1)&"/"&STXT(SI(ESTNUM(A2);TEXTE(A2;"jj/mm/aaaa");A2);CHERCHE("/";SI(ESTNUM(A2);TEXTE(A2;"jj/mm/aaaa");A2);4)+1;4));"")
7excel.xlsx (83.04 Ko)

@neirela

dans les dates, on sait que l'année est forcément à droite, sur 4 chiffres ; mais le jour et le mois sont parfois inversés à cause de dates au format américain (qui sont mélangées avec les autres) ; alors comment les distinguer ?

par exemple, pour une date telle que 3/15/2018, 15 > 12 ➯ on est sûr que c'est inversé car mois maxi : 12 ; donc la macro va inverser pour le corriger : 3/15/2018 ➯ 15/3/2018 ; mais pour une date telle que 3/05/2018, impossible de savoir si c'est inversé ou non : ça peut être le 3 mai ou le 5 mars ; ainsi, ça reste ambigu quand le jour est compris entre 1 et 12 (car idem que pour un mois : 1 à 12).

voici pourquoi ma 2ème solution est juste une amélioration, et ne peut pas résoudre tous les cas.

18excel.xlsm (26.87 Ko)

c'est une autre méthode, qui utilise DateSerial() au lieu de CDate() ; mais ça fera peut-être pareil qu'avec CDate() ?

dhany

mais pour une date telle que 3/05/2018, impossible de savoir si c'est inversé ou non : ça peut être le 3 mai ou le 5 mars ; ainsi, ça reste ambigu quand le jour est compris entre 1 et 12 (car idem que pour un mois : 1 à 12).

sans intervention manuelle, c'est le 5 mars !

Merci beaucoup à vous deux Steelson et Dhany,

La deuxième formule que tu m'a fournie Steelson marche parfaitement.

Sois sûr qu'elle servira à bon nombre de gens vu la quantité de forum portant sur le même problème que j'ai pû (ou dû) visiter.

En effet, ce n'était absolument pas dans mes cordes d'aboutir à quelque chose d'aussi complexe.

Merci pour ce retour.

Une réflexion : même si c'est souvent décrié ici, les bons logiciels, quand ils sortent des informations, sortent normalement les dates sous forme de texte en mettant par exemple devant la date un espace. Du coup, excel n’interprète plus rien de lui-même et surtout pas comme il l'entend. C'est justement pour éviter cela même si d'aucuns ne le comprennent pas tout de suite.

Rechercher des sujets similaires à "probleme reconnaissance date"