Salutations,
Je suis face à un problème qui à l'air con comme ça, mais j'ai passé toute l'après midi dessus, sans succès.
Je bosse sur un tableau qui analyse les commandes en retard de notre ERP. L'ERP sort automatiquement un tableau excel, dans le quel les dates sont enregistré en format texte, comme ci-dessous :
9/10/2009 00:00:00
20/10/2010 00:00:00
13/02/2018 00:00:00
(oui, nous avons de gros retards !)
Je copie-colle le tout dans un nouveau tableau via une macro VBA pour tout mettre en page. Afin de pouvoir traiter ces dates comme des dates, j'ai intégré dans mon code vba un remplacement, comme suit :
Selection.Replace What:=" 00:00:00", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Le résultat semble parfait :
9/10/2009
20/10/2010
13/02/2018
Toutes les dates ayant moins de 13 jours deviennent des dates correctes. Par contre, toutes les autres (J13-J31) restent en format texte, et restent inutilisables. J'en déduis que lors de la conversion, Excel s'embrouille avec le format US et EU.
Ce que je ne pige pas, c'est qu'en faisant le remplacement des " 00:00:00" manuellement, via Ctrl+F, la conversion se passe correctement.
(en gros, je remplace le " 00:00:00" par rien, sur toute la plage de données)
Pourquoi ça ne passe pas en VBA ? Que pourrais-je faire pour régler le problème ?
J'aimerais éviter de devoir faire une loop à travers toutes les dates pour les convertir une par une..
Les dates alignées sur la droite sont bonnes. Celles alignées sur la gauche sont buguées
Je vous remercie d'avance pour toute aide.