Rapport de message :*
 

Re: Format date

Titre du sujet : Re: Format date
par Mth le 23/11/2012 21:31:07

Bonsoir zorbrax, bonsoir à tous,

Un piste avec une formule, qui s'appuie sur une liste des 12 mois abrégés en anglais placée feuille 2 dans la plage A1:A12, comme ceci:


Puis dans la première feuille dans une colonne quelconque une formule de ce type:

=SI(ESTNUM(I2);I2;(GAUCHE(I2;2)&"/"&EQUIV(STXT(I2;4;3);Feuil2!$A$1:$A$12;0)&"/"&DROITE(I2;4))*1)

Explications:

Si la cellule I2 est numérique, ESTNUM(I2) renvoie VRAI, alors la date est valable, je la prends en compte.

Si non, la formule découpe la chaîne de caractères en I2 pour la transformer en date, avec:
GAUCHE(I2;2) qui renvoie les deux premiers caractères de la chaîne, soit 26 par exemple ligne 6, ceci indique le jour.

Après le jour, j'insère un slash, le signe & permet de concatener les chaînes

STXT(I2;4;3) renvoie le libellé situé entre les deux tirets, soit par exemple Feb en ligne 6
Dans la plage de cellules $A$1:$A$12 de l'onglet Feuil2, Feb, soit Février deuxième mois de l'année,  se trouve en deuxième position. Cette position est calculée grâce à la fonction EQUIV().
EQUIV("Feb";Feuil2!$A$1:$A$12;0) renvoie 2
Ce calcul permet de renvoyer le numéro du mois.

Pour l'instant ce qui est calculé permet d'obtenir par exemple ligne 6: 26/2
Reste à indiquer l'année, après avoir inséré le slash la fonction DROITE(I2;4) renvoie les 4 derniers caractères de la cellule I2 soit 2012 en ligne 6

Le résultat final obtenu est la chaîne de texte : 26/2/12.
Pour qu'Excel l'interprète comme une date il suffit de transformer cette chaîne en numérique, en multipliant par 1.

Vois dans ton fichier joint si cela peut t-être utile, si tu as la possibilité de créer une colonne supplémentaire ailleurs bien sûr, si non il te faudra l'équivalent en VBA)

Bonne soirée,

mth