Bonjour à tous,
Je converti depuis plusieurs mois des dates plus ou moins "éclatées" grace à la fonction "CDate". Ce matin, souhaitant updater mon fichier, je me suis trouvé confronté à une incompatibilité de type dû au mois de décembre.
J'ai fait quelques recherches... sans succès. Je me trouve donc vers vous.
J'explique d'avantage mon programme :
Sur une ligne, j'ai le mois et l'année => ex : "November 2012".
Sur les lignes du dessous j'ai tous les jours => ex : "Day 1" puis en dessous "Day 2", etc...
J'applique donc le code suivant :
Je test tout d'abord si les 4 derniers caractères sont numériques (pour me placer au niveau de la cellule "December 2012"). Ensuite, tant que les cellules suivantes commencent par "Day", je cast ma date avec le numéro du jour, les trois premières lettres du mois et l'année. => ex : "1 Nov 2012"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 off = 1 'Test if the last 4 characters are numeric (= the year) If IsNumeric(Right(cell.Offset(i, 0), 4)) Then 'Execute the program while the three first characters = "Day" Do While Left(cell.Offset(i + off, 0), 3) = "Day" 'Convert the whole into a date If Len(cell.Offset(i + off, 0)) = 5 Then dte = CDate(Right(cell.Offset(i + off, 0), 1) & " " & Left(cell.Offset(i, 0), 3) & Right(cell.Offset(i, 0), 5)) ElseIf Len(cell.Offset(i + off, 0)) = 6 Then dte = CDate(Right(cell.Offset(i + off, 0), 2) & " " & Left(cell.Offset(i, 0), 3) & Right(cell.Offset(i, 0), 5)) End If 'Execute the function ChooseData ChooseData dte, cell, Pvt, (i + off) 'Set the date to "Empty" and increments the offset dte = Empty off = off + 1 Loop End If
Jusqu'à maintenant, je n'ai jamais eu de problème. J'ai fait des tests et il semblerait que "1 Dec 2012" ne soit pas reconnu comme date.
Quelqu'un peut-il m'aider sur ce problème ?
Je reste à votre disposition pour toutes précisions si je n'ai pas été suffisamment clair !
Je vous remercie par avance !
Kimy
EDIT : J'ai fait de plus amples tests => mon fichier ne devrait pas reconnaitre les mois "February", "April", "May", "June", "July", "August" et "December". Cela signifie tout simplement que la fonction CDate tente de caster les mois en Francais. Y-a-t-il une option spécifique pour lui demander de reconnaitre les trois premières lettres des mois en Anglais ?
Partager