Bonjour,
Suite à l'importation par vba excel d'une page Web j'ai dans une cellule un
format date de type :
Mon, 18 Sep 2006 11:46:40 +0200
Comment faire pour que le format soit de type : 18/09/2006 11:46
Merci de votre aide
Bonjour,
Suite à l'importation par vba excel d'une page Web j'ai dans une cellule un
format date de type :
Mon, 18 Sep 2006 11:46:40 +0200
Comment faire pour que le format soit de type : 18/09/2006 11:46
Merci de votre aide
Bonjour,
Suite à l'importation par vba excel d'une page Web j'ai dans une cellule un
format date de type :
Mon, 18 Sep 2006 11:46:40 +0200
Comment faire pour que le format soit de type : 18/09/2006 11:46
Merci de votre aide
Bonjour,
Suite à l'importation par vba excel d'une page Web j'ai dans une cellule
un format date de type :
Mon, 18 Sep 2006 11:46:40 +0200
Comment faire pour que le format soit de type : 18/09/2006 11:46
Merci de votre aide
Bonjour,
Pour faire certaines stats sur les forums, j'ai développé la fonction
suivante. Elle transforme une date en heure GMT. Exemple :
'Mon, 2 may 2006 18:20:32 +0200
'en ... heure GMT sous forme connue d'Excel
'02/05/2006 16:20:32
@+
FxM
(attention aux coupures de ligne !)
Public Function decode_date(entree, Optional opt, Optional forma)
'transforme ...
'Mon, 2 may 2006 18:20:32 +0200
'en ... heure GMT sous forme connue d'Excel
'02/05/2006 16:20:32
'Stop
Dim tablo_mois, tablo_heure, result_dat, result_heure, entree_vraie
Dim heure As Integer, minute As Integer, x As Integer
entree_vraie = entree
On Error GoTo fin:
If Left(entree, 1) = " " Then entree = Right(entree, Len(entree) - 1)
If Not IsNumeric(Left(entree, 1)) Then entree = Right(entree,
Len(entree) - InStr(1, entree, " "))
tablo_mois = Split(entree, " ")
Select Case UCase(tablo_mois(1))
Case "JAN", "JANUARY", "JANVIER": tablo_mois(1) = 1
Case "FEB", "FEBRUARY", "FEVRIER": tablo_mois(1) = 2
Case "MAR", "MARCH", "MARS": tablo_mois(1) = 3
Case "APR", "APRIL", "AVRIL": tablo_mois(1) = 4
Case "MAY", "MAI": tablo_mois(1) = 5
Case "JUN", "JUNE", "JUIN": tablo_mois(1) = 6
Case "JUL", "JULY", "JUILLET": tablo_mois(1) = 7
Case "AUG", "AUGUST", "AOUT", "AOÛT": tablo_mois(1) = 8
Case "SEP", "SEPTEMBER", "SEPTEMBRE": tablo_mois(1) = 9
Case "OCT", "OCTOBER", "OCTOBRE": tablo_mois(1) = 10
Case "NOV", "NOVEMBER", "NOVEMBRE": tablo_mois(1) = 11
Case "DEC", "DECEMBER", "DECEMBRE", UCase("Décembre"): tablo_mois(1) =
12
End Select
tablo_heure = Split(tablo_mois(3), ":")
result_dat = DateSerial(CInt(tablo_mois(2)), CInt(tablo_mois(1)),
CInt(tablo_mois(0)))
result_heure = TimeSerial(CInt(tablo_heure(0)), CInt(tablo_heure(1)),
CInt(tablo_heure(2)))
If UBound(tablo_mois) = 3 Then
heure = 0: minute = 0: x = 0
Else
If InStr(1, UCase(tablo_mois(4)), "GMT") > 0 Then
heure = 0: minute = 0: x = 0
Else
heure = CInt(Mid(tablo_mois(4), 2, 2)): minute =
CInt(Mid(tablo_mois(4), 4, 2))
Select Case Left(tablo_mois(4), 1)
Case "+": x = -1
Case "-": x = 1
Case Else
End Select
End If
End If
'Stop
forma = Application.Substitute(forma, "a", "y")
forma = Application.Substitute(forma, "j", "d")
decode_date = Format(result_dat + result_heure + x * (heure / 24 + minute
/ 24 / 60), forma)
Exit Function
fin:
decode_date = entree_vraie
On Error GoTo 0
End Function
Bonjour,
Suite à l'importation par vba excel d'une page Web j'ai dans une cellule
un format date de type :
Mon, 18 Sep 2006 11:46:40 +0200
Comment faire pour que le format soit de type : 18/09/2006 11:46
Merci de votre aide
Bonjour,
Pour faire certaines stats sur les forums, j'ai développé la fonction
suivante. Elle transforme une date en heure GMT. Exemple :
'Mon, 2 may 2006 18:20:32 +0200
'en ... heure GMT sous forme connue d'Excel
'02/05/2006 16:20:32
@+
FxM
(attention aux coupures de ligne !)
Public Function decode_date(entree, Optional opt, Optional forma)
'transforme ...
'Mon, 2 may 2006 18:20:32 +0200
'en ... heure GMT sous forme connue d'Excel
'02/05/2006 16:20:32
'Stop
Dim tablo_mois, tablo_heure, result_dat, result_heure, entree_vraie
Dim heure As Integer, minute As Integer, x As Integer
entree_vraie = entree
On Error GoTo fin:
If Left(entree, 1) = " " Then entree = Right(entree, Len(entree) - 1)
If Not IsNumeric(Left(entree, 1)) Then entree = Right(entree,
Len(entree) - InStr(1, entree, " "))
tablo_mois = Split(entree, " ")
Select Case UCase(tablo_mois(1))
Case "JAN", "JANUARY", "JANVIER": tablo_mois(1) = 1
Case "FEB", "FEBRUARY", "FEVRIER": tablo_mois(1) = 2
Case "MAR", "MARCH", "MARS": tablo_mois(1) = 3
Case "APR", "APRIL", "AVRIL": tablo_mois(1) = 4
Case "MAY", "MAI": tablo_mois(1) = 5
Case "JUN", "JUNE", "JUIN": tablo_mois(1) = 6
Case "JUL", "JULY", "JUILLET": tablo_mois(1) = 7
Case "AUG", "AUGUST", "AOUT", "AOÛT": tablo_mois(1) = 8
Case "SEP", "SEPTEMBER", "SEPTEMBRE": tablo_mois(1) = 9
Case "OCT", "OCTOBER", "OCTOBRE": tablo_mois(1) = 10
Case "NOV", "NOVEMBER", "NOVEMBRE": tablo_mois(1) = 11
Case "DEC", "DECEMBER", "DECEMBRE", UCase("Décembre"): tablo_mois(1) =
12
End Select
tablo_heure = Split(tablo_mois(3), ":")
result_dat = DateSerial(CInt(tablo_mois(2)), CInt(tablo_mois(1)),
CInt(tablo_mois(0)))
result_heure = TimeSerial(CInt(tablo_heure(0)), CInt(tablo_heure(1)),
CInt(tablo_heure(2)))
If UBound(tablo_mois) = 3 Then
heure = 0: minute = 0: x = 0
Else
If InStr(1, UCase(tablo_mois(4)), "GMT") > 0 Then
heure = 0: minute = 0: x = 0
Else
heure = CInt(Mid(tablo_mois(4), 2, 2)): minute =
CInt(Mid(tablo_mois(4), 4, 2))
Select Case Left(tablo_mois(4), 1)
Case "+": x = -1
Case "-": x = 1
Case Else
End Select
End If
End If
'Stop
forma = Application.Substitute(forma, "a", "y")
forma = Application.Substitute(forma, "j", "d")
decode_date = Format(result_dat + result_heure + x * (heure / 24 + minute
/ 24 / 60), forma)
Exit Function
fin:
decode_date = entree_vraie
On Error GoTo 0
End Function
Bonjour,
Suite à l'importation par vba excel d'une page Web j'ai dans une cellule
un format date de type :
Mon, 18 Sep 2006 11:46:40 +0200
Comment faire pour que le format soit de type : 18/09/2006 11:46
Merci de votre aide
Bonjour,
Pour faire certaines stats sur les forums, j'ai développé la fonction
suivante. Elle transforme une date en heure GMT. Exemple :
'Mon, 2 may 2006 18:20:32 +0200
'en ... heure GMT sous forme connue d'Excel
'02/05/2006 16:20:32
@+
FxM
(attention aux coupures de ligne !)
Public Function decode_date(entree, Optional opt, Optional forma)
'transforme ...
'Mon, 2 may 2006 18:20:32 +0200
'en ... heure GMT sous forme connue d'Excel
'02/05/2006 16:20:32
'Stop
Dim tablo_mois, tablo_heure, result_dat, result_heure, entree_vraie
Dim heure As Integer, minute As Integer, x As Integer
entree_vraie = entree
On Error GoTo fin:
If Left(entree, 1) = " " Then entree = Right(entree, Len(entree) - 1)
If Not IsNumeric(Left(entree, 1)) Then entree = Right(entree,
Len(entree) - InStr(1, entree, " "))
tablo_mois = Split(entree, " ")
Select Case UCase(tablo_mois(1))
Case "JAN", "JANUARY", "JANVIER": tablo_mois(1) = 1
Case "FEB", "FEBRUARY", "FEVRIER": tablo_mois(1) = 2
Case "MAR", "MARCH", "MARS": tablo_mois(1) = 3
Case "APR", "APRIL", "AVRIL": tablo_mois(1) = 4
Case "MAY", "MAI": tablo_mois(1) = 5
Case "JUN", "JUNE", "JUIN": tablo_mois(1) = 6
Case "JUL", "JULY", "JUILLET": tablo_mois(1) = 7
Case "AUG", "AUGUST", "AOUT", "AOÛT": tablo_mois(1) = 8
Case "SEP", "SEPTEMBER", "SEPTEMBRE": tablo_mois(1) = 9
Case "OCT", "OCTOBER", "OCTOBRE": tablo_mois(1) = 10
Case "NOV", "NOVEMBER", "NOVEMBRE": tablo_mois(1) = 11
Case "DEC", "DECEMBER", "DECEMBRE", UCase("Décembre"): tablo_mois(1) =
12
End Select
tablo_heure = Split(tablo_mois(3), ":")
result_dat = DateSerial(CInt(tablo_mois(2)), CInt(tablo_mois(1)),
CInt(tablo_mois(0)))
result_heure = TimeSerial(CInt(tablo_heure(0)), CInt(tablo_heure(1)),
CInt(tablo_heure(2)))
If UBound(tablo_mois) = 3 Then
heure = 0: minute = 0: x = 0
Else
If InStr(1, UCase(tablo_mois(4)), "GMT") > 0 Then
heure = 0: minute = 0: x = 0
Else
heure = CInt(Mid(tablo_mois(4), 2, 2)): minute =
CInt(Mid(tablo_mois(4), 4, 2))
Select Case Left(tablo_mois(4), 1)
Case "+": x = -1
Case "-": x = 1
Case Else
End Select
End If
End If
'Stop
forma = Application.Substitute(forma, "a", "y")
forma = Application.Substitute(forma, "j", "d")
decode_date = Format(result_dat + result_heure + x * (heure / 24 + minute
/ 24 / 60), forma)
Exit Function
fin:
decode_date = entree_vraie
On Error GoTo 0
End Function
Dis François,
C'est pas plus facile de regarder sa montre pour connaître l'heure ? -)
Dis François,
C'est pas plus facile de regarder sa montre pour connaître l'heure ? -)
Dis François,
C'est pas plus facile de regarder sa montre pour connaître l'heure ? -)
Bonjour,
Suite à l'importation par vba excel d'une page Web j'ai dans une cellule
un
format date de type :
Mon, 18 Sep 2006 11:46:40 +0200
Comment faire pour que le format soit de type : 18/09/2006 11:46
Merci de votre aide
Bonjour,
Suite à l'importation par vba excel d'une page Web j'ai dans une cellule
un
format date de type :
Mon, 18 Sep 2006 11:46:40 +0200
Comment faire pour que le format soit de type : 18/09/2006 11:46
Merci de votre aide
Bonjour,
Suite à l'importation par vba excel d'une page Web j'ai dans une cellule
un
format date de type :
Mon, 18 Sep 2006 11:46:40 +0200
Comment faire pour que le format soit de type : 18/09/2006 11:46
Merci de votre aide
Dis François,
C'est pas plus facile de regarder sa montre pour connaître l'heure ? -)
Mon bon Jacquouille,
Ce n'est pas si simple. Il faut regarder vite car ça change tout le temps
:o)
François
Dis François,
C'est pas plus facile de regarder sa montre pour connaître l'heure ? -)
Mon bon Jacquouille,
Ce n'est pas si simple. Il faut regarder vite car ça change tout le temps
:o)
François
Dis François,
C'est pas plus facile de regarder sa montre pour connaître l'heure ? -)
Mon bon Jacquouille,
Ce n'est pas si simple. Il faut regarder vite car ça change tout le temps
:o)
François
ActiveCell.FormulaR1C1 = "Þcode_date(R[1]C:R[4]C)"
Premier souci : la fonction ne traite qu'une cellule à la fois.
Les dates diverses format sont en Colonne C de ma feuille.
J'ai testé...mais je n'arrive pas à utiliser la function.
Les dates diverses format sont en Colonne C de ma feuille.
En vba j'ai mis ceci
ActiveCell.FormulaR1C1 = "Þcode_date(R[1]C:R[4]C)"
Mais je n'ai pas de changement!!!
"FxM" a écrit dans le message de news:Dis François,
C'est pas plus facile de regarder sa montre pour connaître l'heure ? -)
Mon bon Jacquouille,
Ce n'est pas si simple. Il faut regarder vite car ça change tout le temps
:o)
François
ActiveCell.FormulaR1C1 = "Þcode_date(R[1]C:R[4]C)"
Premier souci : la fonction ne traite qu'une cellule à la fois.
Les dates diverses format sont en Colonne C de ma feuille.
J'ai testé...mais je n'arrive pas à utiliser la function.
Les dates diverses format sont en Colonne C de ma feuille.
En vba j'ai mis ceci
ActiveCell.FormulaR1C1 = "Þcode_date(R[1]C:R[4]C)"
Mais je n'ai pas de changement!!!
"FxM" <nullos@greuchmeu.ici> a écrit dans le message de news:
OEUYP702GHA.1068@TK2MSFTNGP05.phx.gbl...
Dis François,
C'est pas plus facile de regarder sa montre pour connaître l'heure ? -)
Mon bon Jacquouille,
Ce n'est pas si simple. Il faut regarder vite car ça change tout le temps
:o)
François
ActiveCell.FormulaR1C1 = "Þcode_date(R[1]C:R[4]C)"
Premier souci : la fonction ne traite qu'une cellule à la fois.
Les dates diverses format sont en Colonne C de ma feuille.
J'ai testé...mais je n'arrive pas à utiliser la function.
Les dates diverses format sont en Colonne C de ma feuille.
En vba j'ai mis ceci
ActiveCell.FormulaR1C1 = "Þcode_date(R[1]C:R[4]C)"
Mais je n'ai pas de changement!!!
"FxM" a écrit dans le message de news:Dis François,
C'est pas plus facile de regarder sa montre pour connaître l'heure ? -)
Mon bon Jacquouille,
Ce n'est pas si simple. Il faut regarder vite car ça change tout le temps
:o)
François
Bonjour fred,ActiveCell.FormulaR1C1 = "Þcode_date(R[1]C:R[4]C)"
Premier souci : la fonction ne traite qu'une cellule à la fois.
Donc plantage avec (R[1]C:R[4]C) qui est une zone de 4 cellules.
J'ai un doute quant à mettre 4 résultats dans une seule cellule ou alors
ta date est dans plusieurs cellules (élément non précises dans la question
initiale).
La seconde chose est qu'il me semble que le contenu de la fonction devrait
être légèrement adapté à ton besoin exact ...
(Attention aux coupures de ligne)
Public Function decode_date_fred(entree)
Dim tablo_mois, tablo_heure, result_dat, result_heure
'si entree -> "Mon, 18 Sep 2006 11:46:40 +0200"
entree = Right(entree, Len(entree) - InStr(1, entree, " "))
'entree = "18 Sep 2006 11:46:40 +0200"
tablo_mois = Split(entree, " ")
'tablo_mois(0) = "18"
'tablo_mois(1) = "Sep"
'tablo_mois(2) = "2006"
'tablo_mois(3) = "11:46:40"
'tablo_mois(4) = "+0200"
Select Case UCase(tablo_mois(1))
Case "JAN", "JANUARY", "JANVIER": tablo_mois(1) = 1
Case "FEB", "FEBRUARY", "FEVRIER": tablo_mois(1) = 2
Case "MAR", "MARCH", "MARS": tablo_mois(1) = 3
Case "APR", "APRIL", "AVRIL": tablo_mois(1) = 4
Case "MAY", "MAI": tablo_mois(1) = 5
Case "JUN", "JUNE", "JUIN": tablo_mois(1) = 6
Case "JUL", "JULY", "JUILLET": tablo_mois(1) = 7
Case "AUG", "AUGUST", "AOUT", "AOÛT": tablo_mois(1) = 8
Case "SEP", "SEPTEMBER", "SEPTEMBRE": tablo_mois(1) = 9
Case "OCT", "OCTOBER", "OCTOBRE": tablo_mois(1) = 10
Case "NOV", "NOVEMBER", "NOVEMBRE": tablo_mois(1) = 11
Case "DEC", "DECEMBER", "DECEMBRE", UCase("Décembre"): tablo_mois(1) =
12
'tablo_mois(1) = 9
End Select
tablo_heure = Split(tablo_mois(3), ":")
'tablo_heure(0) = "11"
'tablo_heure(1) = "46"
'tablo_heure(2) = "40"
result_dat = DateSerial(CInt(tablo_mois(2)), CInt(tablo_mois(1)),
CInt(tablo_mois(0)))
'result_date = #18/09/2006#
result_heure = TimeSerial(CInt(tablo_heure(0)), CInt(tablo_heure(1)),
CInt(tablo_heure(2)))
'result_date = #11:46:40#
'si tu n'as vraiment pas besoin des secondes :
' result_heure = TimeSerial(CInt(tablo_heure(0)), CInt(tablo_heure(1)))
decode_date_fred = Format(result_dat + result_heure , "dd/mm/yyyy hh:mm")
' decode_date_fred = "18/09/2006 11:46"
End FunctionLes dates diverses format sont en Colonne C de ma feuille.
A vérifier :
for each cel in range("C1:C22")
cel.offset(0,1).value = decode_date_fred(cel.value)
next cel
Lit le contenu de chaque cellule de C1 à C22 et met la valeur
correspondante en cellules D1 à D22.
Voilà, voilà ....
@+
FxMJ'ai testé...mais je n'arrive pas à utiliser la function.
Les dates diverses format sont en Colonne C de ma feuille.
En vba j'ai mis ceci
ActiveCell.FormulaR1C1 = "Þcode_date(R[1]C:R[4]C)"
Mais je n'ai pas de changement!!!
"FxM" a écrit dans le message de news:Dis François,
C'est pas plus facile de regarder sa montre pour connaître l'heure
-)
Mon bon Jacquouille,
Ce n'est pas si simple. Il faut regarder vite car ça change tout le
temps :o)
François
Bonjour fred,
ActiveCell.FormulaR1C1 = "Þcode_date(R[1]C:R[4]C)"
Premier souci : la fonction ne traite qu'une cellule à la fois.
Donc plantage avec (R[1]C:R[4]C) qui est une zone de 4 cellules.
J'ai un doute quant à mettre 4 résultats dans une seule cellule ou alors
ta date est dans plusieurs cellules (élément non précises dans la question
initiale).
La seconde chose est qu'il me semble que le contenu de la fonction devrait
être légèrement adapté à ton besoin exact ...
(Attention aux coupures de ligne)
Public Function decode_date_fred(entree)
Dim tablo_mois, tablo_heure, result_dat, result_heure
'si entree -> "Mon, 18 Sep 2006 11:46:40 +0200"
entree = Right(entree, Len(entree) - InStr(1, entree, " "))
'entree = "18 Sep 2006 11:46:40 +0200"
tablo_mois = Split(entree, " ")
'tablo_mois(0) = "18"
'tablo_mois(1) = "Sep"
'tablo_mois(2) = "2006"
'tablo_mois(3) = "11:46:40"
'tablo_mois(4) = "+0200"
Select Case UCase(tablo_mois(1))
Case "JAN", "JANUARY", "JANVIER": tablo_mois(1) = 1
Case "FEB", "FEBRUARY", "FEVRIER": tablo_mois(1) = 2
Case "MAR", "MARCH", "MARS": tablo_mois(1) = 3
Case "APR", "APRIL", "AVRIL": tablo_mois(1) = 4
Case "MAY", "MAI": tablo_mois(1) = 5
Case "JUN", "JUNE", "JUIN": tablo_mois(1) = 6
Case "JUL", "JULY", "JUILLET": tablo_mois(1) = 7
Case "AUG", "AUGUST", "AOUT", "AOÛT": tablo_mois(1) = 8
Case "SEP", "SEPTEMBER", "SEPTEMBRE": tablo_mois(1) = 9
Case "OCT", "OCTOBER", "OCTOBRE": tablo_mois(1) = 10
Case "NOV", "NOVEMBER", "NOVEMBRE": tablo_mois(1) = 11
Case "DEC", "DECEMBER", "DECEMBRE", UCase("Décembre"): tablo_mois(1) =
12
'tablo_mois(1) = 9
End Select
tablo_heure = Split(tablo_mois(3), ":")
'tablo_heure(0) = "11"
'tablo_heure(1) = "46"
'tablo_heure(2) = "40"
result_dat = DateSerial(CInt(tablo_mois(2)), CInt(tablo_mois(1)),
CInt(tablo_mois(0)))
'result_date = #18/09/2006#
result_heure = TimeSerial(CInt(tablo_heure(0)), CInt(tablo_heure(1)),
CInt(tablo_heure(2)))
'result_date = #11:46:40#
'si tu n'as vraiment pas besoin des secondes :
' result_heure = TimeSerial(CInt(tablo_heure(0)), CInt(tablo_heure(1)))
decode_date_fred = Format(result_dat + result_heure , "dd/mm/yyyy hh:mm")
' decode_date_fred = "18/09/2006 11:46"
End Function
Les dates diverses format sont en Colonne C de ma feuille.
A vérifier :
for each cel in range("C1:C22")
cel.offset(0,1).value = decode_date_fred(cel.value)
next cel
Lit le contenu de chaque cellule de C1 à C22 et met la valeur
correspondante en cellules D1 à D22.
Voilà, voilà ....
@+
FxM
J'ai testé...mais je n'arrive pas à utiliser la function.
Les dates diverses format sont en Colonne C de ma feuille.
En vba j'ai mis ceci
ActiveCell.FormulaR1C1 = "Þcode_date(R[1]C:R[4]C)"
Mais je n'ai pas de changement!!!
"FxM" <nullos@greuchmeu.ici> a écrit dans le message de news:
OEUYP702GHA.1068@TK2MSFTNGP05.phx.gbl...
Dis François,
C'est pas plus facile de regarder sa montre pour connaître l'heure
-)
Mon bon Jacquouille,
Ce n'est pas si simple. Il faut regarder vite car ça change tout le
temps :o)
François
Bonjour fred,ActiveCell.FormulaR1C1 = "Þcode_date(R[1]C:R[4]C)"
Premier souci : la fonction ne traite qu'une cellule à la fois.
Donc plantage avec (R[1]C:R[4]C) qui est une zone de 4 cellules.
J'ai un doute quant à mettre 4 résultats dans une seule cellule ou alors
ta date est dans plusieurs cellules (élément non précises dans la question
initiale).
La seconde chose est qu'il me semble que le contenu de la fonction devrait
être légèrement adapté à ton besoin exact ...
(Attention aux coupures de ligne)
Public Function decode_date_fred(entree)
Dim tablo_mois, tablo_heure, result_dat, result_heure
'si entree -> "Mon, 18 Sep 2006 11:46:40 +0200"
entree = Right(entree, Len(entree) - InStr(1, entree, " "))
'entree = "18 Sep 2006 11:46:40 +0200"
tablo_mois = Split(entree, " ")
'tablo_mois(0) = "18"
'tablo_mois(1) = "Sep"
'tablo_mois(2) = "2006"
'tablo_mois(3) = "11:46:40"
'tablo_mois(4) = "+0200"
Select Case UCase(tablo_mois(1))
Case "JAN", "JANUARY", "JANVIER": tablo_mois(1) = 1
Case "FEB", "FEBRUARY", "FEVRIER": tablo_mois(1) = 2
Case "MAR", "MARCH", "MARS": tablo_mois(1) = 3
Case "APR", "APRIL", "AVRIL": tablo_mois(1) = 4
Case "MAY", "MAI": tablo_mois(1) = 5
Case "JUN", "JUNE", "JUIN": tablo_mois(1) = 6
Case "JUL", "JULY", "JUILLET": tablo_mois(1) = 7
Case "AUG", "AUGUST", "AOUT", "AOÛT": tablo_mois(1) = 8
Case "SEP", "SEPTEMBER", "SEPTEMBRE": tablo_mois(1) = 9
Case "OCT", "OCTOBER", "OCTOBRE": tablo_mois(1) = 10
Case "NOV", "NOVEMBER", "NOVEMBRE": tablo_mois(1) = 11
Case "DEC", "DECEMBER", "DECEMBRE", UCase("Décembre"): tablo_mois(1) =
12
'tablo_mois(1) = 9
End Select
tablo_heure = Split(tablo_mois(3), ":")
'tablo_heure(0) = "11"
'tablo_heure(1) = "46"
'tablo_heure(2) = "40"
result_dat = DateSerial(CInt(tablo_mois(2)), CInt(tablo_mois(1)),
CInt(tablo_mois(0)))
'result_date = #18/09/2006#
result_heure = TimeSerial(CInt(tablo_heure(0)), CInt(tablo_heure(1)),
CInt(tablo_heure(2)))
'result_date = #11:46:40#
'si tu n'as vraiment pas besoin des secondes :
' result_heure = TimeSerial(CInt(tablo_heure(0)), CInt(tablo_heure(1)))
decode_date_fred = Format(result_dat + result_heure , "dd/mm/yyyy hh:mm")
' decode_date_fred = "18/09/2006 11:46"
End FunctionLes dates diverses format sont en Colonne C de ma feuille.
A vérifier :
for each cel in range("C1:C22")
cel.offset(0,1).value = decode_date_fred(cel.value)
next cel
Lit le contenu de chaque cellule de C1 à C22 et met la valeur
correspondante en cellules D1 à D22.
Voilà, voilà ....
@+
FxMJ'ai testé...mais je n'arrive pas à utiliser la function.
Les dates diverses format sont en Colonne C de ma feuille.
En vba j'ai mis ceci
ActiveCell.FormulaR1C1 = "Þcode_date(R[1]C:R[4]C)"
Mais je n'ai pas de changement!!!
"FxM" a écrit dans le message de news:Dis François,
C'est pas plus facile de regarder sa montre pour connaître l'heure
-)
Mon bon Jacquouille,
Ce n'est pas si simple. Il faut regarder vite car ça change tout le
temps :o)
François
function decode_date avec un souci tout de même le format date "Sun,
10 Sep
2006 19:10:21 +0200" me donne "09/10/2006 19:10" et non "10/09/2006
19:10"!
Avec function decode_date_fred j'ai une erreur d'execution au niveau
"Select Case UCase(tablo_mois(1))" , l'indice n'appartient pas à la
sélection.
(en effet j'ai des dates de type 13/10/0006)!
Tu vas rencontrer de gros problèmes si avant 1900.
Merci FxM..j'ai testé et ça fonctionne maintenant...en gardant la première
function decode_date avec un souci tout de même le format date "Sun, 10 Sep
2006 19:10:21 +0200" me donne "09/10/2006 19:10" et non "10/09/2006
19:10"!
Avec function decode_date_fred j'ai une erreur d'execution au niveau
"Select Case UCase(tablo_mois(1))" , l'indice n'appartient pas à la
sélection.
(en effet j'ai des dates de type 13/10/0006)!
Merci tout de même
"FxM" a écrit dans le message de news:
ejwRl%23$Bonjour fred,ActiveCell.FormulaR1C1 = "Þcode_date(R[1]C:R[4]C)"
Premier souci : la fonction ne traite qu'une cellule à la fois.
Donc plantage avec (R[1]C:R[4]C) qui est une zone de 4 cellules.
J'ai un doute quant à mettre 4 résultats dans une seule cellule ou alors
ta date est dans plusieurs cellules (élément non précises dans la question
initiale).
La seconde chose est qu'il me semble que le contenu de la fonction devrait
être légèrement adapté à ton besoin exact ...
(Attention aux coupures de ligne)
Public Function decode_date_fred(entree)
Dim tablo_mois, tablo_heure, result_dat, result_heure
'si entree -> "Mon, 18 Sep 2006 11:46:40 +0200"
entree = Right(entree, Len(entree) - InStr(1, entree, " "))
'entree = "18 Sep 2006 11:46:40 +0200"
tablo_mois = Split(entree, " ")
'tablo_mois(0) = "18"
'tablo_mois(1) = "Sep"
'tablo_mois(2) = "2006"
'tablo_mois(3) = "11:46:40"
'tablo_mois(4) = "+0200"
Select Case UCase(tablo_mois(1))
Case "JAN", "JANUARY", "JANVIER": tablo_mois(1) = 1
Case "FEB", "FEBRUARY", "FEVRIER": tablo_mois(1) = 2
Case "MAR", "MARCH", "MARS": tablo_mois(1) = 3
Case "APR", "APRIL", "AVRIL": tablo_mois(1) = 4
Case "MAY", "MAI": tablo_mois(1) = 5
Case "JUN", "JUNE", "JUIN": tablo_mois(1) = 6
Case "JUL", "JULY", "JUILLET": tablo_mois(1) = 7
Case "AUG", "AUGUST", "AOUT", "AOÛT": tablo_mois(1) = 8
Case "SEP", "SEPTEMBER", "SEPTEMBRE": tablo_mois(1) = 9
Case "OCT", "OCTOBER", "OCTOBRE": tablo_mois(1) = 10
Case "NOV", "NOVEMBER", "NOVEMBRE": tablo_mois(1) = 11
Case "DEC", "DECEMBER", "DECEMBRE", UCase("Décembre"): tablo_mois(1) =
12
'tablo_mois(1) = 9
End Select
tablo_heure = Split(tablo_mois(3), ":")
'tablo_heure(0) = "11"
'tablo_heure(1) = "46"
'tablo_heure(2) = "40"
result_dat = DateSerial(CInt(tablo_mois(2)), CInt(tablo_mois(1)),
CInt(tablo_mois(0)))
'result_date = #18/09/2006#
result_heure = TimeSerial(CInt(tablo_heure(0)), CInt(tablo_heure(1)),
CInt(tablo_heure(2)))
'result_date = #11:46:40#
'si tu n'as vraiment pas besoin des secondes :
' result_heure = TimeSerial(CInt(tablo_heure(0)), CInt(tablo_heure(1)))
decode_date_fred = Format(result_dat + result_heure , "dd/mm/yyyy hh:mm")
' decode_date_fred = "18/09/2006 11:46"
End FunctionLes dates diverses format sont en Colonne C de ma feuille.
A vérifier :
for each cel in range("C1:C22")
cel.offset(0,1).value = decode_date_fred(cel.value)
next cel
Lit le contenu de chaque cellule de C1 à C22 et met la valeur
correspondante en cellules D1 à D22.
Voilà, voilà ....
@+
FxMJ'ai testé...mais je n'arrive pas à utiliser la function.
Les dates diverses format sont en Colonne C de ma feuille.
En vba j'ai mis ceci
ActiveCell.FormulaR1C1 = "Þcode_date(R[1]C:R[4]C)"
Mais je n'ai pas de changement!!!
"FxM" a écrit dans le message de news:Dis François,
C'est pas plus facile de regarder sa montre pour connaître l'heure
-)
Mon bon Jacquouille,
Ce n'est pas si simple. Il faut regarder vite car ça change tout le
temps :o)
François
function decode_date avec un souci tout de même le format date "Sun,
10 Sep
2006 19:10:21 +0200" me donne "09/10/2006 19:10" et non "10/09/2006
19:10"!
Avec function decode_date_fred j'ai une erreur d'execution au niveau
"Select Case UCase(tablo_mois(1))" , l'indice n'appartient pas à la
sélection.
(en effet j'ai des dates de type 13/10/0006)!
Tu vas rencontrer de gros problèmes si avant 1900.
Merci FxM..j'ai testé et ça fonctionne maintenant...en gardant la première
function decode_date avec un souci tout de même le format date "Sun, 10 Sep
2006 19:10:21 +0200" me donne "09/10/2006 19:10" et non "10/09/2006
19:10"!
Avec function decode_date_fred j'ai une erreur d'execution au niveau
"Select Case UCase(tablo_mois(1))" , l'indice n'appartient pas à la
sélection.
(en effet j'ai des dates de type 13/10/0006)!
Merci tout de même
"FxM" <nullos@greuchmeu.ici> a écrit dans le message de news:
ejwRl%23$2GHA.4748@TK2MSFTNGP04.phx.gbl...
Bonjour fred,
ActiveCell.FormulaR1C1 = "Þcode_date(R[1]C:R[4]C)"
Premier souci : la fonction ne traite qu'une cellule à la fois.
Donc plantage avec (R[1]C:R[4]C) qui est une zone de 4 cellules.
J'ai un doute quant à mettre 4 résultats dans une seule cellule ou alors
ta date est dans plusieurs cellules (élément non précises dans la question
initiale).
La seconde chose est qu'il me semble que le contenu de la fonction devrait
être légèrement adapté à ton besoin exact ...
(Attention aux coupures de ligne)
Public Function decode_date_fred(entree)
Dim tablo_mois, tablo_heure, result_dat, result_heure
'si entree -> "Mon, 18 Sep 2006 11:46:40 +0200"
entree = Right(entree, Len(entree) - InStr(1, entree, " "))
'entree = "18 Sep 2006 11:46:40 +0200"
tablo_mois = Split(entree, " ")
'tablo_mois(0) = "18"
'tablo_mois(1) = "Sep"
'tablo_mois(2) = "2006"
'tablo_mois(3) = "11:46:40"
'tablo_mois(4) = "+0200"
Select Case UCase(tablo_mois(1))
Case "JAN", "JANUARY", "JANVIER": tablo_mois(1) = 1
Case "FEB", "FEBRUARY", "FEVRIER": tablo_mois(1) = 2
Case "MAR", "MARCH", "MARS": tablo_mois(1) = 3
Case "APR", "APRIL", "AVRIL": tablo_mois(1) = 4
Case "MAY", "MAI": tablo_mois(1) = 5
Case "JUN", "JUNE", "JUIN": tablo_mois(1) = 6
Case "JUL", "JULY", "JUILLET": tablo_mois(1) = 7
Case "AUG", "AUGUST", "AOUT", "AOÛT": tablo_mois(1) = 8
Case "SEP", "SEPTEMBER", "SEPTEMBRE": tablo_mois(1) = 9
Case "OCT", "OCTOBER", "OCTOBRE": tablo_mois(1) = 10
Case "NOV", "NOVEMBER", "NOVEMBRE": tablo_mois(1) = 11
Case "DEC", "DECEMBER", "DECEMBRE", UCase("Décembre"): tablo_mois(1) =
12
'tablo_mois(1) = 9
End Select
tablo_heure = Split(tablo_mois(3), ":")
'tablo_heure(0) = "11"
'tablo_heure(1) = "46"
'tablo_heure(2) = "40"
result_dat = DateSerial(CInt(tablo_mois(2)), CInt(tablo_mois(1)),
CInt(tablo_mois(0)))
'result_date = #18/09/2006#
result_heure = TimeSerial(CInt(tablo_heure(0)), CInt(tablo_heure(1)),
CInt(tablo_heure(2)))
'result_date = #11:46:40#
'si tu n'as vraiment pas besoin des secondes :
' result_heure = TimeSerial(CInt(tablo_heure(0)), CInt(tablo_heure(1)))
decode_date_fred = Format(result_dat + result_heure , "dd/mm/yyyy hh:mm")
' decode_date_fred = "18/09/2006 11:46"
End Function
Les dates diverses format sont en Colonne C de ma feuille.
A vérifier :
for each cel in range("C1:C22")
cel.offset(0,1).value = decode_date_fred(cel.value)
next cel
Lit le contenu de chaque cellule de C1 à C22 et met la valeur
correspondante en cellules D1 à D22.
Voilà, voilà ....
@+
FxM
J'ai testé...mais je n'arrive pas à utiliser la function.
Les dates diverses format sont en Colonne C de ma feuille.
En vba j'ai mis ceci
ActiveCell.FormulaR1C1 = "Þcode_date(R[1]C:R[4]C)"
Mais je n'ai pas de changement!!!
"FxM" <nullos@greuchmeu.ici> a écrit dans le message de news:
OEUYP702GHA.1068@TK2MSFTNGP05.phx.gbl...
Dis François,
C'est pas plus facile de regarder sa montre pour connaître l'heure
-)
Mon bon Jacquouille,
Ce n'est pas si simple. Il faut regarder vite car ça change tout le
temps :o)
François
function decode_date avec un souci tout de même le format date "Sun,
10 Sep
2006 19:10:21 +0200" me donne "09/10/2006 19:10" et non "10/09/2006
19:10"!
Avec function decode_date_fred j'ai une erreur d'execution au niveau
"Select Case UCase(tablo_mois(1))" , l'indice n'appartient pas à la
sélection.
(en effet j'ai des dates de type 13/10/0006)!
Tu vas rencontrer de gros problèmes si avant 1900.
Merci FxM..j'ai testé et ça fonctionne maintenant...en gardant la première
function decode_date avec un souci tout de même le format date "Sun, 10 Sep
2006 19:10:21 +0200" me donne "09/10/2006 19:10" et non "10/09/2006
19:10"!
Avec function decode_date_fred j'ai une erreur d'execution au niveau
"Select Case UCase(tablo_mois(1))" , l'indice n'appartient pas à la
sélection.
(en effet j'ai des dates de type 13/10/0006)!
Merci tout de même
"FxM" a écrit dans le message de news:
ejwRl%23$Bonjour fred,ActiveCell.FormulaR1C1 = "Þcode_date(R[1]C:R[4]C)"
Premier souci : la fonction ne traite qu'une cellule à la fois.
Donc plantage avec (R[1]C:R[4]C) qui est une zone de 4 cellules.
J'ai un doute quant à mettre 4 résultats dans une seule cellule ou alors
ta date est dans plusieurs cellules (élément non précises dans la question
initiale).
La seconde chose est qu'il me semble que le contenu de la fonction devrait
être légèrement adapté à ton besoin exact ...
(Attention aux coupures de ligne)
Public Function decode_date_fred(entree)
Dim tablo_mois, tablo_heure, result_dat, result_heure
'si entree -> "Mon, 18 Sep 2006 11:46:40 +0200"
entree = Right(entree, Len(entree) - InStr(1, entree, " "))
'entree = "18 Sep 2006 11:46:40 +0200"
tablo_mois = Split(entree, " ")
'tablo_mois(0) = "18"
'tablo_mois(1) = "Sep"
'tablo_mois(2) = "2006"
'tablo_mois(3) = "11:46:40"
'tablo_mois(4) = "+0200"
Select Case UCase(tablo_mois(1))
Case "JAN", "JANUARY", "JANVIER": tablo_mois(1) = 1
Case "FEB", "FEBRUARY", "FEVRIER": tablo_mois(1) = 2
Case "MAR", "MARCH", "MARS": tablo_mois(1) = 3
Case "APR", "APRIL", "AVRIL": tablo_mois(1) = 4
Case "MAY", "MAI": tablo_mois(1) = 5
Case "JUN", "JUNE", "JUIN": tablo_mois(1) = 6
Case "JUL", "JULY", "JUILLET": tablo_mois(1) = 7
Case "AUG", "AUGUST", "AOUT", "AOÛT": tablo_mois(1) = 8
Case "SEP", "SEPTEMBER", "SEPTEMBRE": tablo_mois(1) = 9
Case "OCT", "OCTOBER", "OCTOBRE": tablo_mois(1) = 10
Case "NOV", "NOVEMBER", "NOVEMBRE": tablo_mois(1) = 11
Case "DEC", "DECEMBER", "DECEMBRE", UCase("Décembre"): tablo_mois(1) =
12
'tablo_mois(1) = 9
End Select
tablo_heure = Split(tablo_mois(3), ":")
'tablo_heure(0) = "11"
'tablo_heure(1) = "46"
'tablo_heure(2) = "40"
result_dat = DateSerial(CInt(tablo_mois(2)), CInt(tablo_mois(1)),
CInt(tablo_mois(0)))
'result_date = #18/09/2006#
result_heure = TimeSerial(CInt(tablo_heure(0)), CInt(tablo_heure(1)),
CInt(tablo_heure(2)))
'result_date = #11:46:40#
'si tu n'as vraiment pas besoin des secondes :
' result_heure = TimeSerial(CInt(tablo_heure(0)), CInt(tablo_heure(1)))
decode_date_fred = Format(result_dat + result_heure , "dd/mm/yyyy hh:mm")
' decode_date_fred = "18/09/2006 11:46"
End FunctionLes dates diverses format sont en Colonne C de ma feuille.
A vérifier :
for each cel in range("C1:C22")
cel.offset(0,1).value = decode_date_fred(cel.value)
next cel
Lit le contenu de chaque cellule de C1 à C22 et met la valeur
correspondante en cellules D1 à D22.
Voilà, voilà ....
@+
FxMJ'ai testé...mais je n'arrive pas à utiliser la function.
Les dates diverses format sont en Colonne C de ma feuille.
En vba j'ai mis ceci
ActiveCell.FormulaR1C1 = "Þcode_date(R[1]C:R[4]C)"
Mais je n'ai pas de changement!!!
"FxM" a écrit dans le message de news:Dis François,
C'est pas plus facile de regarder sa montre pour connaître l'heure
-)
Mon bon Jacquouille,
Ce n'est pas si simple. Il faut regarder vite car ça change tout le
temps :o)
François
Bonsoir Fred,function decode_date avec un souci tout de même le format date "Sun,
10 Sep2006 19:10:21 +0200" me donne "09/10/2006 19:10" et non "10/09/2006
19:10"!
Si tu as cela, c'est que (pour forma) tu as entré
"dd/mm/yyyy hh:mm"
et pas
"dd/mm/yyyy hh:mm"Avec function decode_date_fred j'ai une erreur d'execution au niveau
"Select Case UCase(tablo_mois(1))" , l'indice n'appartient pas à la
sélection.
Comme tu as du le voir, la seconde fonction a été considérablement allégée
par rapport à la première. En particulier, la vérification de la présence
du jour (Sun, Mon etc) a été enlevée [je répond au problème tel que posé
:o) ].
Tu peux réincorporer la vérif
If Not IsNumeric(Left(entree, 1)) Then entree = Right(entree,
Len(entree) - InStr(1, entree, " "))
Tu risques de rencontrer également la date débutant par un espace.
Contournement par :
If Left(entree, 1) = " " Then entree = Right(entree, Len(entree) - 1)(en effet j'ai des dates de type 13/10/0006)!
Tu vas rencontrer de gros problèmes si avant 1900.
Au besoin, met des exemples de dates sur cjoint.com pour qu'on y jette un
oeil.
@+
FxMMerci FxM..j'ai testé et ça fonctionne maintenant...en gardant la
première function decode_date avec un souci tout de même le format date
"Sun, 10 Sep 2006 19:10:21 +0200" me donne "09/10/2006 19:10" et non
"10/09/2006 19:10"!
Avec function decode_date_fred j'ai une erreur d'execution au niveau
"Select Case UCase(tablo_mois(1))" , l'indice n'appartient pas à la
sélection.
(en effet j'ai des dates de type 13/10/0006)!
Merci tout de même
"FxM" a écrit dans le message de news:
ejwRl%23$Bonjour fred,ActiveCell.FormulaR1C1 = "Þcode_date(R[1]C:R[4]C)"
Premier souci : la fonction ne traite qu'une cellule à la fois.
Donc plantage avec (R[1]C:R[4]C) qui est une zone de 4 cellules.
J'ai un doute quant à mettre 4 résultats dans une seule cellule ou alors
ta date est dans plusieurs cellules (élément non précises dans la
question initiale).
La seconde chose est qu'il me semble que le contenu de la fonction
devrait être légèrement adapté à ton besoin exact ...
(Attention aux coupures de ligne)
Public Function decode_date_fred(entree)
Dim tablo_mois, tablo_heure, result_dat, result_heure
'si entree -> "Mon, 18 Sep 2006 11:46:40 +0200"
entree = Right(entree, Len(entree) - InStr(1, entree, " "))
'entree = "18 Sep 2006 11:46:40 +0200"
tablo_mois = Split(entree, " ")
'tablo_mois(0) = "18"
'tablo_mois(1) = "Sep"
'tablo_mois(2) = "2006"
'tablo_mois(3) = "11:46:40"
'tablo_mois(4) = "+0200"
Select Case UCase(tablo_mois(1))
Case "JAN", "JANUARY", "JANVIER": tablo_mois(1) = 1
Case "FEB", "FEBRUARY", "FEVRIER": tablo_mois(1) = 2
Case "MAR", "MARCH", "MARS": tablo_mois(1) = 3
Case "APR", "APRIL", "AVRIL": tablo_mois(1) = 4
Case "MAY", "MAI": tablo_mois(1) = 5
Case "JUN", "JUNE", "JUIN": tablo_mois(1) = 6
Case "JUL", "JULY", "JUILLET": tablo_mois(1) = 7
Case "AUG", "AUGUST", "AOUT", "AOÛT": tablo_mois(1) = 8
Case "SEP", "SEPTEMBER", "SEPTEMBRE": tablo_mois(1) = 9
Case "OCT", "OCTOBER", "OCTOBRE": tablo_mois(1) = 10
Case "NOV", "NOVEMBER", "NOVEMBRE": tablo_mois(1) = 11
Case "DEC", "DECEMBER", "DECEMBRE", UCase("Décembre"): tablo_mois(1) =
12
'tablo_mois(1) = 9
End Select
tablo_heure = Split(tablo_mois(3), ":")
'tablo_heure(0) = "11"
'tablo_heure(1) = "46"
'tablo_heure(2) = "40"
result_dat = DateSerial(CInt(tablo_mois(2)), CInt(tablo_mois(1)),
CInt(tablo_mois(0)))
'result_date = #18/09/2006#
result_heure = TimeSerial(CInt(tablo_heure(0)), CInt(tablo_heure(1)),
CInt(tablo_heure(2)))
'result_date = #11:46:40#
'si tu n'as vraiment pas besoin des secondes :
' result_heure = TimeSerial(CInt(tablo_heure(0)), CInt(tablo_heure(1)))
decode_date_fred = Format(result_dat + result_heure , "dd/mm/yyyy
hh:mm")
' decode_date_fred = "18/09/2006 11:46"
End FunctionLes dates diverses format sont en Colonne C de ma feuille.
A vérifier :
for each cel in range("C1:C22")
cel.offset(0,1).value = decode_date_fred(cel.value)
next cel
Lit le contenu de chaque cellule de C1 à C22 et met la valeur
correspondante en cellules D1 à D22.
Voilà, voilà ....
@+
FxMJ'ai testé...mais je n'arrive pas à utiliser la function.
Les dates diverses format sont en Colonne C de ma feuille.
En vba j'ai mis ceci
ActiveCell.FormulaR1C1 = "Þcode_date(R[1]C:R[4]C)"
Mais je n'ai pas de changement!!!
"FxM" a écrit dans le message de news:Dis François,
C'est pas plus facile de regarder sa montre pour connaître l'heure -)
Mon bon Jacquouille,
Ce n'est pas si simple. Il faut regarder vite car ça change tout le
temps :o)
François
Bonsoir Fred,
function decode_date avec un souci tout de même le format date "Sun,
10 Sep
2006 19:10:21 +0200" me donne "09/10/2006 19:10" et non "10/09/2006
19:10"!
Si tu as cela, c'est que (pour forma) tu as entré
"dd/mm/yyyy hh:mm"
et pas
"dd/mm/yyyy hh:mm"
Avec function decode_date_fred j'ai une erreur d'execution au niveau
"Select Case UCase(tablo_mois(1))" , l'indice n'appartient pas à la
sélection.
Comme tu as du le voir, la seconde fonction a été considérablement allégée
par rapport à la première. En particulier, la vérification de la présence
du jour (Sun, Mon etc) a été enlevée [je répond au problème tel que posé
:o) ].
Tu peux réincorporer la vérif
If Not IsNumeric(Left(entree, 1)) Then entree = Right(entree,
Len(entree) - InStr(1, entree, " "))
Tu risques de rencontrer également la date débutant par un espace.
Contournement par :
If Left(entree, 1) = " " Then entree = Right(entree, Len(entree) - 1)
(en effet j'ai des dates de type 13/10/0006)!
Tu vas rencontrer de gros problèmes si avant 1900.
Au besoin, met des exemples de dates sur cjoint.com pour qu'on y jette un
oeil.
@+
FxM
Merci FxM..j'ai testé et ça fonctionne maintenant...en gardant la
première function decode_date avec un souci tout de même le format date
"Sun, 10 Sep 2006 19:10:21 +0200" me donne "09/10/2006 19:10" et non
"10/09/2006 19:10"!
Avec function decode_date_fred j'ai une erreur d'execution au niveau
"Select Case UCase(tablo_mois(1))" , l'indice n'appartient pas à la
sélection.
(en effet j'ai des dates de type 13/10/0006)!
Merci tout de même
"FxM" <nullos@greuchmeu.ici> a écrit dans le message de news:
ejwRl%23$2GHA.4748@TK2MSFTNGP04.phx.gbl...
Bonjour fred,
ActiveCell.FormulaR1C1 = "Þcode_date(R[1]C:R[4]C)"
Premier souci : la fonction ne traite qu'une cellule à la fois.
Donc plantage avec (R[1]C:R[4]C) qui est une zone de 4 cellules.
J'ai un doute quant à mettre 4 résultats dans une seule cellule ou alors
ta date est dans plusieurs cellules (élément non précises dans la
question initiale).
La seconde chose est qu'il me semble que le contenu de la fonction
devrait être légèrement adapté à ton besoin exact ...
(Attention aux coupures de ligne)
Public Function decode_date_fred(entree)
Dim tablo_mois, tablo_heure, result_dat, result_heure
'si entree -> "Mon, 18 Sep 2006 11:46:40 +0200"
entree = Right(entree, Len(entree) - InStr(1, entree, " "))
'entree = "18 Sep 2006 11:46:40 +0200"
tablo_mois = Split(entree, " ")
'tablo_mois(0) = "18"
'tablo_mois(1) = "Sep"
'tablo_mois(2) = "2006"
'tablo_mois(3) = "11:46:40"
'tablo_mois(4) = "+0200"
Select Case UCase(tablo_mois(1))
Case "JAN", "JANUARY", "JANVIER": tablo_mois(1) = 1
Case "FEB", "FEBRUARY", "FEVRIER": tablo_mois(1) = 2
Case "MAR", "MARCH", "MARS": tablo_mois(1) = 3
Case "APR", "APRIL", "AVRIL": tablo_mois(1) = 4
Case "MAY", "MAI": tablo_mois(1) = 5
Case "JUN", "JUNE", "JUIN": tablo_mois(1) = 6
Case "JUL", "JULY", "JUILLET": tablo_mois(1) = 7
Case "AUG", "AUGUST", "AOUT", "AOÛT": tablo_mois(1) = 8
Case "SEP", "SEPTEMBER", "SEPTEMBRE": tablo_mois(1) = 9
Case "OCT", "OCTOBER", "OCTOBRE": tablo_mois(1) = 10
Case "NOV", "NOVEMBER", "NOVEMBRE": tablo_mois(1) = 11
Case "DEC", "DECEMBER", "DECEMBRE", UCase("Décembre"): tablo_mois(1) =
12
'tablo_mois(1) = 9
End Select
tablo_heure = Split(tablo_mois(3), ":")
'tablo_heure(0) = "11"
'tablo_heure(1) = "46"
'tablo_heure(2) = "40"
result_dat = DateSerial(CInt(tablo_mois(2)), CInt(tablo_mois(1)),
CInt(tablo_mois(0)))
'result_date = #18/09/2006#
result_heure = TimeSerial(CInt(tablo_heure(0)), CInt(tablo_heure(1)),
CInt(tablo_heure(2)))
'result_date = #11:46:40#
'si tu n'as vraiment pas besoin des secondes :
' result_heure = TimeSerial(CInt(tablo_heure(0)), CInt(tablo_heure(1)))
decode_date_fred = Format(result_dat + result_heure , "dd/mm/yyyy
hh:mm")
' decode_date_fred = "18/09/2006 11:46"
End Function
Les dates diverses format sont en Colonne C de ma feuille.
A vérifier :
for each cel in range("C1:C22")
cel.offset(0,1).value = decode_date_fred(cel.value)
next cel
Lit le contenu de chaque cellule de C1 à C22 et met la valeur
correspondante en cellules D1 à D22.
Voilà, voilà ....
@+
FxM
J'ai testé...mais je n'arrive pas à utiliser la function.
Les dates diverses format sont en Colonne C de ma feuille.
En vba j'ai mis ceci
ActiveCell.FormulaR1C1 = "Þcode_date(R[1]C:R[4]C)"
Mais je n'ai pas de changement!!!
"FxM" <nullos@greuchmeu.ici> a écrit dans le message de news:
OEUYP702GHA.1068@TK2MSFTNGP05.phx.gbl...
Dis François,
C'est pas plus facile de regarder sa montre pour connaître l'heure -)
Mon bon Jacquouille,
Ce n'est pas si simple. Il faut regarder vite car ça change tout le
temps :o)
François
Bonsoir Fred,function decode_date avec un souci tout de même le format date "Sun,
10 Sep2006 19:10:21 +0200" me donne "09/10/2006 19:10" et non "10/09/2006
19:10"!
Si tu as cela, c'est que (pour forma) tu as entré
"dd/mm/yyyy hh:mm"
et pas
"dd/mm/yyyy hh:mm"Avec function decode_date_fred j'ai une erreur d'execution au niveau
"Select Case UCase(tablo_mois(1))" , l'indice n'appartient pas à la
sélection.
Comme tu as du le voir, la seconde fonction a été considérablement allégée
par rapport à la première. En particulier, la vérification de la présence
du jour (Sun, Mon etc) a été enlevée [je répond au problème tel que posé
:o) ].
Tu peux réincorporer la vérif
If Not IsNumeric(Left(entree, 1)) Then entree = Right(entree,
Len(entree) - InStr(1, entree, " "))
Tu risques de rencontrer également la date débutant par un espace.
Contournement par :
If Left(entree, 1) = " " Then entree = Right(entree, Len(entree) - 1)(en effet j'ai des dates de type 13/10/0006)!
Tu vas rencontrer de gros problèmes si avant 1900.
Au besoin, met des exemples de dates sur cjoint.com pour qu'on y jette un
oeil.
@+
FxMMerci FxM..j'ai testé et ça fonctionne maintenant...en gardant la
première function decode_date avec un souci tout de même le format date
"Sun, 10 Sep 2006 19:10:21 +0200" me donne "09/10/2006 19:10" et non
"10/09/2006 19:10"!
Avec function decode_date_fred j'ai une erreur d'execution au niveau
"Select Case UCase(tablo_mois(1))" , l'indice n'appartient pas à la
sélection.
(en effet j'ai des dates de type 13/10/0006)!
Merci tout de même
"FxM" a écrit dans le message de news:
ejwRl%23$Bonjour fred,ActiveCell.FormulaR1C1 = "Þcode_date(R[1]C:R[4]C)"
Premier souci : la fonction ne traite qu'une cellule à la fois.
Donc plantage avec (R[1]C:R[4]C) qui est une zone de 4 cellules.
J'ai un doute quant à mettre 4 résultats dans une seule cellule ou alors
ta date est dans plusieurs cellules (élément non précises dans la
question initiale).
La seconde chose est qu'il me semble que le contenu de la fonction
devrait être légèrement adapté à ton besoin exact ...
(Attention aux coupures de ligne)
Public Function decode_date_fred(entree)
Dim tablo_mois, tablo_heure, result_dat, result_heure
'si entree -> "Mon, 18 Sep 2006 11:46:40 +0200"
entree = Right(entree, Len(entree) - InStr(1, entree, " "))
'entree = "18 Sep 2006 11:46:40 +0200"
tablo_mois = Split(entree, " ")
'tablo_mois(0) = "18"
'tablo_mois(1) = "Sep"
'tablo_mois(2) = "2006"
'tablo_mois(3) = "11:46:40"
'tablo_mois(4) = "+0200"
Select Case UCase(tablo_mois(1))
Case "JAN", "JANUARY", "JANVIER": tablo_mois(1) = 1
Case "FEB", "FEBRUARY", "FEVRIER": tablo_mois(1) = 2
Case "MAR", "MARCH", "MARS": tablo_mois(1) = 3
Case "APR", "APRIL", "AVRIL": tablo_mois(1) = 4
Case "MAY", "MAI": tablo_mois(1) = 5
Case "JUN", "JUNE", "JUIN": tablo_mois(1) = 6
Case "JUL", "JULY", "JUILLET": tablo_mois(1) = 7
Case "AUG", "AUGUST", "AOUT", "AOÛT": tablo_mois(1) = 8
Case "SEP", "SEPTEMBER", "SEPTEMBRE": tablo_mois(1) = 9
Case "OCT", "OCTOBER", "OCTOBRE": tablo_mois(1) = 10
Case "NOV", "NOVEMBER", "NOVEMBRE": tablo_mois(1) = 11
Case "DEC", "DECEMBER", "DECEMBRE", UCase("Décembre"): tablo_mois(1) =
12
'tablo_mois(1) = 9
End Select
tablo_heure = Split(tablo_mois(3), ":")
'tablo_heure(0) = "11"
'tablo_heure(1) = "46"
'tablo_heure(2) = "40"
result_dat = DateSerial(CInt(tablo_mois(2)), CInt(tablo_mois(1)),
CInt(tablo_mois(0)))
'result_date = #18/09/2006#
result_heure = TimeSerial(CInt(tablo_heure(0)), CInt(tablo_heure(1)),
CInt(tablo_heure(2)))
'result_date = #11:46:40#
'si tu n'as vraiment pas besoin des secondes :
' result_heure = TimeSerial(CInt(tablo_heure(0)), CInt(tablo_heure(1)))
decode_date_fred = Format(result_dat + result_heure , "dd/mm/yyyy
hh:mm")
' decode_date_fred = "18/09/2006 11:46"
End FunctionLes dates diverses format sont en Colonne C de ma feuille.
A vérifier :
for each cel in range("C1:C22")
cel.offset(0,1).value = decode_date_fred(cel.value)
next cel
Lit le contenu de chaque cellule de C1 à C22 et met la valeur
correspondante en cellules D1 à D22.
Voilà, voilà ....
@+
FxMJ'ai testé...mais je n'arrive pas à utiliser la function.
Les dates diverses format sont en Colonne C de ma feuille.
En vba j'ai mis ceci
ActiveCell.FormulaR1C1 = "Þcode_date(R[1]C:R[4]C)"
Mais je n'ai pas de changement!!!
"FxM" a écrit dans le message de news:Dis François,
C'est pas plus facile de regarder sa montre pour connaître l'heure -)
Mon bon Jacquouille,
Ce n'est pas si simple. Il faut regarder vite car ça change tout le
temps :o)
François
OK j'ai corrigé pour le format Date...ça remet correctement le mois et le
jour.
decode_date = Format(result_dat + result_heure, "mm/dd/yyyy hh:mm")
J'avais aussi les espaces a enlever en début de date :
If Left(entree, 1) = " " Then entree = Right(entree, Len(entree) - 1)
J'avais aussi en fin de date ...UT...j'ai contourné en utlisant par exemple
sur C1:
Range("C1").Select
Selection.Replace What:=" UT", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse
Dernière chose...le traitement de la function semble un peu long...je pense
que cela provient de ceci:
for each cel in range("C1:C65536")...je devrais peut-être utiliser une
UsedRange.Rows.Count?
Merci bcp pour votre aide!!!
"FxM" a écrit dans le message de news:Bonsoir Fred,function decode_date avec un souci tout de même le format date "Sun,
10 Sep2006 19:10:21 +0200" me donne "09/10/2006 19:10" et non "10/09/2006
19:10"!
Si tu as cela, c'est que (pour forma) tu as entré
"dd/mm/yyyy hh:mm"
et pas
"dd/mm/yyyy hh:mm"Avec function decode_date_fred j'ai une erreur d'execution au niveau
"Select Case UCase(tablo_mois(1))" , l'indice n'appartient pas à la
sélection.
Comme tu as du le voir, la seconde fonction a été considérablement allégée
par rapport à la première. En particulier, la vérification de la présence
du jour (Sun, Mon etc) a été enlevée [je répond au problème tel que posé
:o) ].
Tu peux réincorporer la vérif
If Not IsNumeric(Left(entree, 1)) Then entree = Right(entree,
Len(entree) - InStr(1, entree, " "))
Tu risques de rencontrer également la date débutant par un espace.
Contournement par :
If Left(entree, 1) = " " Then entree = Right(entree, Len(entree) - 1)(en effet j'ai des dates de type 13/10/0006)!
Tu vas rencontrer de gros problèmes si avant 1900.
Au besoin, met des exemples de dates sur cjoint.com pour qu'on y jette un
oeil.
@+
FxMMerci FxM..j'ai testé et ça fonctionne maintenant...en gardant la
première function decode_date avec un souci tout de même le format date
"Sun, 10 Sep 2006 19:10:21 +0200" me donne "09/10/2006 19:10" et non
"10/09/2006 19:10"!
Avec function decode_date_fred j'ai une erreur d'execution au niveau
"Select Case UCase(tablo_mois(1))" , l'indice n'appartient pas à la
sélection.
(en effet j'ai des dates de type 13/10/0006)!
Merci tout de même
"FxM" a écrit dans le message de news:
ejwRl%23$Bonjour fred,ActiveCell.FormulaR1C1 = "Þcode_date(R[1]C:R[4]C)"
Premier souci : la fonction ne traite qu'une cellule à la fois.
Donc plantage avec (R[1]C:R[4]C) qui est une zone de 4 cellules.
J'ai un doute quant à mettre 4 résultats dans une seule cellule ou alors
ta date est dans plusieurs cellules (élément non précises dans la
question initiale).
La seconde chose est qu'il me semble que le contenu de la fonction
devrait être légèrement adapté à ton besoin exact ...
(Attention aux coupures de ligne)
Public Function decode_date_fred(entree)
Dim tablo_mois, tablo_heure, result_dat, result_heure
'si entree -> "Mon, 18 Sep 2006 11:46:40 +0200"
entree = Right(entree, Len(entree) - InStr(1, entree, " "))
'entree = "18 Sep 2006 11:46:40 +0200"
tablo_mois = Split(entree, " ")
'tablo_mois(0) = "18"
'tablo_mois(1) = "Sep"
'tablo_mois(2) = "2006"
'tablo_mois(3) = "11:46:40"
'tablo_mois(4) = "+0200"
Select Case UCase(tablo_mois(1))
Case "JAN", "JANUARY", "JANVIER": tablo_mois(1) = 1
Case "FEB", "FEBRUARY", "FEVRIER": tablo_mois(1) = 2
Case "MAR", "MARCH", "MARS": tablo_mois(1) = 3
Case "APR", "APRIL", "AVRIL": tablo_mois(1) = 4
Case "MAY", "MAI": tablo_mois(1) = 5
Case "JUN", "JUNE", "JUIN": tablo_mois(1) = 6
Case "JUL", "JULY", "JUILLET": tablo_mois(1) = 7
Case "AUG", "AUGUST", "AOUT", "AOÛT": tablo_mois(1) = 8
Case "SEP", "SEPTEMBER", "SEPTEMBRE": tablo_mois(1) = 9
Case "OCT", "OCTOBER", "OCTOBRE": tablo_mois(1) = 10
Case "NOV", "NOVEMBER", "NOVEMBRE": tablo_mois(1) = 11
Case "DEC", "DECEMBER", "DECEMBRE", UCase("Décembre"): tablo_mois(1) =
12
'tablo_mois(1) = 9
End Select
tablo_heure = Split(tablo_mois(3), ":")
'tablo_heure(0) = "11"
'tablo_heure(1) = "46"
'tablo_heure(2) = "40"
result_dat = DateSerial(CInt(tablo_mois(2)), CInt(tablo_mois(1)),
CInt(tablo_mois(0)))
'result_date = #18/09/2006#
result_heure = TimeSerial(CInt(tablo_heure(0)), CInt(tablo_heure(1)),
CInt(tablo_heure(2)))
'result_date = #11:46:40#
'si tu n'as vraiment pas besoin des secondes :
' result_heure = TimeSerial(CInt(tablo_heure(0)), CInt(tablo_heure(1)))
decode_date_fred = Format(result_dat + result_heure , "dd/mm/yyyy
hh:mm")
' decode_date_fred = "18/09/2006 11:46"
End FunctionLes dates diverses format sont en Colonne C de ma feuille.
A vérifier :
for each cel in range("C1:C22")
cel.offset(0,1).value = decode_date_fred(cel.value)
next cel
Lit le contenu de chaque cellule de C1 à C22 et met la valeur
correspondante en cellules D1 à D22.
Voilà, voilà ....
@+
FxMJ'ai testé...mais je n'arrive pas à utiliser la function.
Les dates diverses format sont en Colonne C de ma feuille.
En vba j'ai mis ceci
ActiveCell.FormulaR1C1 = "Þcode_date(R[1]C:R[4]C)"
Mais je n'ai pas de changement!!!
"FxM" a écrit dans le message de news:Dis François,
C'est pas plus facile de regarder sa montre pour connaître l'heure -)
Mon bon Jacquouille,
Ce n'est pas si simple. Il faut regarder vite car ça change tout le
temps :o)
François
OK j'ai corrigé pour le format Date...ça remet correctement le mois et le
jour.
decode_date = Format(result_dat + result_heure, "mm/dd/yyyy hh:mm")
J'avais aussi les espaces a enlever en début de date :
If Left(entree, 1) = " " Then entree = Right(entree, Len(entree) - 1)
J'avais aussi en fin de date ...UT...j'ai contourné en utlisant par exemple
sur C1:
Range("C1").Select
Selection.Replace What:=" UT", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse
Dernière chose...le traitement de la function semble un peu long...je pense
que cela provient de ceci:
for each cel in range("C1:C65536")...je devrais peut-être utiliser une
UsedRange.Rows.Count?
Merci bcp pour votre aide!!!
"FxM" <nullos@greuchmeu.ici> a écrit dans le message de news:
OqhJoQF3GHA.2096@TK2MSFTNGP05.phx.gbl...
Bonsoir Fred,
function decode_date avec un souci tout de même le format date "Sun,
10 Sep
2006 19:10:21 +0200" me donne "09/10/2006 19:10" et non "10/09/2006
19:10"!
Si tu as cela, c'est que (pour forma) tu as entré
"dd/mm/yyyy hh:mm"
et pas
"dd/mm/yyyy hh:mm"
Avec function decode_date_fred j'ai une erreur d'execution au niveau
"Select Case UCase(tablo_mois(1))" , l'indice n'appartient pas à la
sélection.
Comme tu as du le voir, la seconde fonction a été considérablement allégée
par rapport à la première. En particulier, la vérification de la présence
du jour (Sun, Mon etc) a été enlevée [je répond au problème tel que posé
:o) ].
Tu peux réincorporer la vérif
If Not IsNumeric(Left(entree, 1)) Then entree = Right(entree,
Len(entree) - InStr(1, entree, " "))
Tu risques de rencontrer également la date débutant par un espace.
Contournement par :
If Left(entree, 1) = " " Then entree = Right(entree, Len(entree) - 1)
(en effet j'ai des dates de type 13/10/0006)!
Tu vas rencontrer de gros problèmes si avant 1900.
Au besoin, met des exemples de dates sur cjoint.com pour qu'on y jette un
oeil.
@+
FxM
Merci FxM..j'ai testé et ça fonctionne maintenant...en gardant la
première function decode_date avec un souci tout de même le format date
"Sun, 10 Sep 2006 19:10:21 +0200" me donne "09/10/2006 19:10" et non
"10/09/2006 19:10"!
Avec function decode_date_fred j'ai une erreur d'execution au niveau
"Select Case UCase(tablo_mois(1))" , l'indice n'appartient pas à la
sélection.
(en effet j'ai des dates de type 13/10/0006)!
Merci tout de même
"FxM" <nullos@greuchmeu.ici> a écrit dans le message de news:
ejwRl%23$2GHA.4748@TK2MSFTNGP04.phx.gbl...
Bonjour fred,
ActiveCell.FormulaR1C1 = "Þcode_date(R[1]C:R[4]C)"
Premier souci : la fonction ne traite qu'une cellule à la fois.
Donc plantage avec (R[1]C:R[4]C) qui est une zone de 4 cellules.
J'ai un doute quant à mettre 4 résultats dans une seule cellule ou alors
ta date est dans plusieurs cellules (élément non précises dans la
question initiale).
La seconde chose est qu'il me semble que le contenu de la fonction
devrait être légèrement adapté à ton besoin exact ...
(Attention aux coupures de ligne)
Public Function decode_date_fred(entree)
Dim tablo_mois, tablo_heure, result_dat, result_heure
'si entree -> "Mon, 18 Sep 2006 11:46:40 +0200"
entree = Right(entree, Len(entree) - InStr(1, entree, " "))
'entree = "18 Sep 2006 11:46:40 +0200"
tablo_mois = Split(entree, " ")
'tablo_mois(0) = "18"
'tablo_mois(1) = "Sep"
'tablo_mois(2) = "2006"
'tablo_mois(3) = "11:46:40"
'tablo_mois(4) = "+0200"
Select Case UCase(tablo_mois(1))
Case "JAN", "JANUARY", "JANVIER": tablo_mois(1) = 1
Case "FEB", "FEBRUARY", "FEVRIER": tablo_mois(1) = 2
Case "MAR", "MARCH", "MARS": tablo_mois(1) = 3
Case "APR", "APRIL", "AVRIL": tablo_mois(1) = 4
Case "MAY", "MAI": tablo_mois(1) = 5
Case "JUN", "JUNE", "JUIN": tablo_mois(1) = 6
Case "JUL", "JULY", "JUILLET": tablo_mois(1) = 7
Case "AUG", "AUGUST", "AOUT", "AOÛT": tablo_mois(1) = 8
Case "SEP", "SEPTEMBER", "SEPTEMBRE": tablo_mois(1) = 9
Case "OCT", "OCTOBER", "OCTOBRE": tablo_mois(1) = 10
Case "NOV", "NOVEMBER", "NOVEMBRE": tablo_mois(1) = 11
Case "DEC", "DECEMBER", "DECEMBRE", UCase("Décembre"): tablo_mois(1) =
12
'tablo_mois(1) = 9
End Select
tablo_heure = Split(tablo_mois(3), ":")
'tablo_heure(0) = "11"
'tablo_heure(1) = "46"
'tablo_heure(2) = "40"
result_dat = DateSerial(CInt(tablo_mois(2)), CInt(tablo_mois(1)),
CInt(tablo_mois(0)))
'result_date = #18/09/2006#
result_heure = TimeSerial(CInt(tablo_heure(0)), CInt(tablo_heure(1)),
CInt(tablo_heure(2)))
'result_date = #11:46:40#
'si tu n'as vraiment pas besoin des secondes :
' result_heure = TimeSerial(CInt(tablo_heure(0)), CInt(tablo_heure(1)))
decode_date_fred = Format(result_dat + result_heure , "dd/mm/yyyy
hh:mm")
' decode_date_fred = "18/09/2006 11:46"
End Function
Les dates diverses format sont en Colonne C de ma feuille.
A vérifier :
for each cel in range("C1:C22")
cel.offset(0,1).value = decode_date_fred(cel.value)
next cel
Lit le contenu de chaque cellule de C1 à C22 et met la valeur
correspondante en cellules D1 à D22.
Voilà, voilà ....
@+
FxM
J'ai testé...mais je n'arrive pas à utiliser la function.
Les dates diverses format sont en Colonne C de ma feuille.
En vba j'ai mis ceci
ActiveCell.FormulaR1C1 = "Þcode_date(R[1]C:R[4]C)"
Mais je n'ai pas de changement!!!
"FxM" <nullos@greuchmeu.ici> a écrit dans le message de news:
OEUYP702GHA.1068@TK2MSFTNGP05.phx.gbl...
Dis François,
C'est pas plus facile de regarder sa montre pour connaître l'heure -)
Mon bon Jacquouille,
Ce n'est pas si simple. Il faut regarder vite car ça change tout le
temps :o)
François
OK j'ai corrigé pour le format Date...ça remet correctement le mois et le
jour.
decode_date = Format(result_dat + result_heure, "mm/dd/yyyy hh:mm")
J'avais aussi les espaces a enlever en début de date :
If Left(entree, 1) = " " Then entree = Right(entree, Len(entree) - 1)
J'avais aussi en fin de date ...UT...j'ai contourné en utlisant par exemple
sur C1:
Range("C1").Select
Selection.Replace What:=" UT", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse
Dernière chose...le traitement de la function semble un peu long...je pense
que cela provient de ceci:
for each cel in range("C1:C65536")...je devrais peut-être utiliser une
UsedRange.Rows.Count?
Merci bcp pour votre aide!!!
"FxM" a écrit dans le message de news:Bonsoir Fred,function decode_date avec un souci tout de même le format date "Sun,
10 Sep2006 19:10:21 +0200" me donne "09/10/2006 19:10" et non "10/09/2006
19:10"!
Si tu as cela, c'est que (pour forma) tu as entré
"dd/mm/yyyy hh:mm"
et pas
"dd/mm/yyyy hh:mm"Avec function decode_date_fred j'ai une erreur d'execution au niveau
"Select Case UCase(tablo_mois(1))" , l'indice n'appartient pas à la
sélection.
Comme tu as du le voir, la seconde fonction a été considérablement allégée
par rapport à la première. En particulier, la vérification de la présence
du jour (Sun, Mon etc) a été enlevée [je répond au problème tel que posé
:o) ].
Tu peux réincorporer la vérif
If Not IsNumeric(Left(entree, 1)) Then entree = Right(entree,
Len(entree) - InStr(1, entree, " "))
Tu risques de rencontrer également la date débutant par un espace.
Contournement par :
If Left(entree, 1) = " " Then entree = Right(entree, Len(entree) - 1)(en effet j'ai des dates de type 13/10/0006)!
Tu vas rencontrer de gros problèmes si avant 1900.
Au besoin, met des exemples de dates sur cjoint.com pour qu'on y jette un
oeil.
@+
FxMMerci FxM..j'ai testé et ça fonctionne maintenant...en gardant la
première function decode_date avec un souci tout de même le format date
"Sun, 10 Sep 2006 19:10:21 +0200" me donne "09/10/2006 19:10" et non
"10/09/2006 19:10"!
Avec function decode_date_fred j'ai une erreur d'execution au niveau
"Select Case UCase(tablo_mois(1))" , l'indice n'appartient pas à la
sélection.
(en effet j'ai des dates de type 13/10/0006)!
Merci tout de même
"FxM" a écrit dans le message de news:
ejwRl%23$Bonjour fred,ActiveCell.FormulaR1C1 = "Þcode_date(R[1]C:R[4]C)"
Premier souci : la fonction ne traite qu'une cellule à la fois.
Donc plantage avec (R[1]C:R[4]C) qui est une zone de 4 cellules.
J'ai un doute quant à mettre 4 résultats dans une seule cellule ou alors
ta date est dans plusieurs cellules (élément non précises dans la
question initiale).
La seconde chose est qu'il me semble que le contenu de la fonction
devrait être légèrement adapté à ton besoin exact ...
(Attention aux coupures de ligne)
Public Function decode_date_fred(entree)
Dim tablo_mois, tablo_heure, result_dat, result_heure
'si entree -> "Mon, 18 Sep 2006 11:46:40 +0200"
entree = Right(entree, Len(entree) - InStr(1, entree, " "))
'entree = "18 Sep 2006 11:46:40 +0200"
tablo_mois = Split(entree, " ")
'tablo_mois(0) = "18"
'tablo_mois(1) = "Sep"
'tablo_mois(2) = "2006"
'tablo_mois(3) = "11:46:40"
'tablo_mois(4) = "+0200"
Select Case UCase(tablo_mois(1))
Case "JAN", "JANUARY", "JANVIER": tablo_mois(1) = 1
Case "FEB", "FEBRUARY", "FEVRIER": tablo_mois(1) = 2
Case "MAR", "MARCH", "MARS": tablo_mois(1) = 3
Case "APR", "APRIL", "AVRIL": tablo_mois(1) = 4
Case "MAY", "MAI": tablo_mois(1) = 5
Case "JUN", "JUNE", "JUIN": tablo_mois(1) = 6
Case "JUL", "JULY", "JUILLET": tablo_mois(1) = 7
Case "AUG", "AUGUST", "AOUT", "AOÛT": tablo_mois(1) = 8
Case "SEP", "SEPTEMBER", "SEPTEMBRE": tablo_mois(1) = 9
Case "OCT", "OCTOBER", "OCTOBRE": tablo_mois(1) = 10
Case "NOV", "NOVEMBER", "NOVEMBRE": tablo_mois(1) = 11
Case "DEC", "DECEMBER", "DECEMBRE", UCase("Décembre"): tablo_mois(1) =
12
'tablo_mois(1) = 9
End Select
tablo_heure = Split(tablo_mois(3), ":")
'tablo_heure(0) = "11"
'tablo_heure(1) = "46"
'tablo_heure(2) = "40"
result_dat = DateSerial(CInt(tablo_mois(2)), CInt(tablo_mois(1)),
CInt(tablo_mois(0)))
'result_date = #18/09/2006#
result_heure = TimeSerial(CInt(tablo_heure(0)), CInt(tablo_heure(1)),
CInt(tablo_heure(2)))
'result_date = #11:46:40#
'si tu n'as vraiment pas besoin des secondes :
' result_heure = TimeSerial(CInt(tablo_heure(0)), CInt(tablo_heure(1)))
decode_date_fred = Format(result_dat + result_heure , "dd/mm/yyyy
hh:mm")
' decode_date_fred = "18/09/2006 11:46"
End FunctionLes dates diverses format sont en Colonne C de ma feuille.
A vérifier :
for each cel in range("C1:C22")
cel.offset(0,1).value = decode_date_fred(cel.value)
next cel
Lit le contenu de chaque cellule de C1 à C22 et met la valeur
correspondante en cellules D1 à D22.
Voilà, voilà ....
@+
FxMJ'ai testé...mais je n'arrive pas à utiliser la function.
Les dates diverses format sont en Colonne C de ma feuille.
En vba j'ai mis ceci
ActiveCell.FormulaR1C1 = "Þcode_date(R[1]C:R[4]C)"
Mais je n'ai pas de changement!!!
"FxM" a écrit dans le message de news:Dis François,
C'est pas plus facile de regarder sa montre pour connaître l'heure -)
Mon bon Jacquouille,
Ce n'est pas si simple. Il faut regarder vite car ça change tout le
temps :o)
François