OVH Cloud OVH Cloud

Transformer en vrai date des dates en anglais

20 réponses
Avatar
Céline Brien
Bonjour à tous,
Des dates copiées et collées dans Excel à partir d'un base de données en
anglais.
01-Feb-04
15-Aug-03
04-juil-03
18-Aug-03
04-juil-03
14-juil-03

Certaines dates sont reconnues, d'autres ne sont pas reconnues.
J'utilise VBA (voir codes ci-dessous) pour transformer en vrai date ces
dates en anglais, mais le traitement des données est trop long.
Avez-vous des suggestions ?
Merci de votre aide,
Céline
------------------------------
' Renommer les mois des colonnes de date
Range("H:K").Select
Selection.Replace What:="-Jan-", Replacement:="-janv-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="-Feb-", Replacement:="-févr-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="-Mar-", Replacement:="-mars-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="-Apr-", Replacement:="-avr-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="-May-", Replacement:="-mai-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="-Jun-", Replacement:="-juin-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="-Jul-", Replacement:="-juil-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="-Aug-", Replacement:="-août-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="-Sep-", Replacement:="-sept-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="-Oct-", Replacement:="-oct-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="-Nov-", Replacement:="-nov-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="-Dec-", Replacement:="-déc-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
' Remplacer les années à 2 chiffres par des années à 4 chiffres
Range("H1").Select
Selection.AutoFilter Field:=8, Criteria1:="=*???*", Operator:=xlAnd
Range(Selection, Selection.End(xlDown)).Select
Selection.Replace What:="-99", Replacement:="-1999", LookAt:=xlPart,
_
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="-00", Replacement:="-2000", LookAt:=xlPart,
_
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="-01", Replacement:="-2001", LookAt:=xlPart,
_
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="-02", Replacement:="-2002", LookAt:=xlPart,
_
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="-03", Replacement:="-2003", LookAt:=xlPart,
_
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="-04", Replacement:="-2004", LookAt:=xlPart,
_
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="-05", Replacement:="-2005", LookAt:=xlPart,
_
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="-06", Replacement:="-2006", LookAt:=xlPart,
_
SearchOrder:=xlByRows, MatchCase:=False
On Error Resume Next
' Transformer les dates_texte en date avec la fonction DateValue
Range("H2").Select
Selection.Sort Key1:=Range("H2"), Order1:=xlDescending,
Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Dim h As Range
Range(Selection, Selection.End(xlDown)).Select
For Each h In Selection
If IsDate("" & h) Then
Cells(h.Row, Selection.Column) = DateValue("" & h)
End If
Next
ActiveSheet.ShowAllData
' Appliquer le format de date
Range("H:H").Select
Selection.NumberFormat = "d/mmm/yyyy"

10 réponses

1 2
Avatar
Céline Brien
Bonjour à tous,
En effectuant des tests, j'ai réalisé que la lenteur dans le traitement
de mes données était due en partie au calcul automatique. J'ai donc
intégré, au début de la macro, des codes pour désactiver le calcul
automatique et, à la fin de la macro, des codes pour réactiver le calcul
automatique. À retenir !
J'ai adapté les codes pour garder mon titre intact et je sais maintenant
comment choisir la colonne à traiter.
Il me reste un problème.
J'ai quatre colonnes de dates à traiter.
J'ai donc adapté les codes pour chacune des colonnes. Voir codes
ci-dessous.
Le traitement des deux premières colonnes s'effectue sans problème.
Dans les deux dernières colonnes, plusieurs dates ne sont pas
transformées en vraie date !?!
Avez-vous des suggestions ?
Merci beaucoup de votre aide si précieuse,
Céline
----------------------------------
' Transformer les dates en anglais en dates en français colonne H
Range("H2").Select
Selection.Sort Key1:=Range("H2"), Order1:=xlDescending,
Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
Const ChainH = "JanFebMarAprMayJunJulAugSepOctNovDec"
Dim h As Integer, MoisH As Byte
h = 2
While Cells(h, 8) <> ""
If Not IsDate(Cells(h, 8)) Then
MoisH = 1 + Fix(InStr(1, ChainH, Mid(Cells(h, 8), 4, 3)) /
3)
Cells(h, 8) = DateSerial(Val(Mid(Cells(h, 8), 8)), MoisH,
Val(Left(Cells(h, 8), 2)))
Else
Cells(h, 8).NumberFormat = "m/d/yyyy"
End If
h = h + 1
Wend
' Appliquer le format de date
Range("H:H").Select
Selection.NumberFormat = "d/mmm/yyyy"
' Transformer les dates en anglais en dates en français colonne I
Range("I2").Select
Selection.Sort Key1:=Range("I2"), Order1:=xlDescending,
Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
Const ChainI = "JanFebMarAprMayJunJulAugSepOctNovDec"
Dim i As Integer, MoisI As Byte
i = 2
While Cells(i, 9) <> ""
If Not IsDate(Cells(i, 9)) Then
MoisI = 1 + Fix(InStr(1, ChainI, Mid(Cells(i, 9), 4, 3)) /
3)
Cells(i, 9) = DateSerial(Val(Mid(Cells(i, 9), 8)), MoisI,
Val(Left(Cells(i, 9), 2)))
Else
Cells(i, 9).NumberFormat = "m/d/yyyy"
End If
i = i + 1
Wend
' Appliquer le format de date
Range("I:I").Select
Selection.NumberFormat = "d/mmm/yyyy"
' Transformer les dates en anglais en dates en français colonne J
Range("J2").Select
Selection.Sort Key1:=Range("J2"), Order1:=xlDescending,
Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
Const ChainJ = "JanFebMarAprMayJunJulAugSepOctNovDec"
Dim j As Integer, MoisJ As Byte
j = 2
While Cells(j, 10) <> ""
If Not IsDate(Cells(j, 10)) Then
MoisJ = 1 + Fix(InStr(1, ChainJ, Mid(Cells(j, 10), 4, 3)) /
3)
Cells(j, 10) = DateSerial(Val(Mid(Cells(j, 10), 8)), MoisJ,
Val(Left(Cells(j, 10), 2)))
Else
Cells(j, 10).NumberFormat = "m/d/yyyy"
End If
j = i + 1
Wend
' Appliquer le format de date
Range("J:J").Select
Selection.NumberFormat = "d/mmm/yyyy"
' Transformer les dates en anglais en dates en français colonne K
Range("K2").Select
Selection.Sort Key1:=Range("K2"), Order1:=xlDescending,
Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
Const ChainK = "JanFebMarAprMayJunJulAugSepOctNovDec"
Dim k As Integer, MoisK As Byte
k = 2
While Cells(k, 11) <> ""
If Not IsDate(Cells(k, 11)) Then
MoisK = 1 + Fix(InStr(1, ChainK, Mid(Cells(k, 11), 4, 3)) /
3)
Cells(k, 11) = DateSerial(Val(Mid(Cells(k, 11), 8)), MoisK,
Val(Left(Cells(k, 11), 2)))
Else
Cells(k, 11).NumberFormat = "m/d/yyyy"
End If
k = i + 1
Wend
' Appliquer le format de date
Range("K:K").Select
Selection.NumberFormat = "d/mmm/yyyy"
Avatar
D.LAIR
Bonjour,
Ceci fonctionne à partir d'un fichier TEXTE, contenant,
par exemple les dates suivantes :
01-Feb-04
15-Aug-03
04-jul-03
18-Aug-03
04-jul-03
14-jul-03
Je vais changer les paramètres régionaux (dans panneau de

configuration de Windows) pour choisir la langue
anglaise.
Je lance EXCEL et ouvre ce fichier TEXTE --> tout ce qui
est date est bien compris comme tel dans ma feuille.
J'enregistre au format EXCEL. Je quitte EXCEL.
Je retourne changer les paramètres régionaux (dans panneau
de configuration de Windows) re-sélectionner la langue
francaise.
Amicalement.
DL (pour m'écrire enlever le f de mon nom)
-----Message d'origine-----
Bonjour à tous,
Des dates copiées et collées dans Excel à partir d'un
base de données en

anglais.
01-Feb-04
15-Aug-03
04-juil-03
18-Aug-03
04-juil-03
14-juil-03

Certaines dates sont reconnues, d'autres ne sont pas
reconnues.

J'utilise VBA (voir codes ci-dessous) pour transformer en
vrai date ces

dates en anglais, mais le traitement des données est trop
long.

Avez-vous des suggestions ?
Merci de votre aide,
Céline
------------------------------
' Renommer les mois des colonnes de date
Range("H:K").Select
Selection.Replace What:="-Jan-", Replacement:="-janv-
",

LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Feb-", Replacement:="-févr-
",

LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Mar-", Replacement:="-mars-
",

LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Apr-", Replacement:="-avr-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-May-", Replacement:="-mai-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Jun-", Replacement:="-juin-
",

LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Jul-", Replacement:="-juil-
",

LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Aug-", Replacement:="-août-
",

LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Sep-", Replacement:="-sept-
",

LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Oct-", Replacement:="-oct-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Nov-", Replacement:="-nov-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Dec-", Replacement:="-déc-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
' Remplacer les années à 2 chiffres par des années à 4
chiffres

Range("H1").Select
Selection.AutoFilter Field:=8, Criteria1:="=*???*",
Operator:=xlAnd

Range(Selection, Selection.End(xlDown)).Select
Selection.Replace What:="-99", Replacement:="-1999",
LookAt:=xlPart,

_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-00", Replacement:="-2000",
LookAt:=xlPart,

_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-01", Replacement:="-2001",
LookAt:=xlPart,

_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-02", Replacement:="-2002",
LookAt:=xlPart,

_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-03", Replacement:="-2003",
LookAt:=xlPart,

_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-04", Replacement:="-2004",
LookAt:=xlPart,

_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-05", Replacement:="-2005",
LookAt:=xlPart,

_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-06", Replacement:="-2006",
LookAt:=xlPart,

_
SearchOrder:=xlByRows, MatchCase:úlse
On Error Resume Next
' Transformer les dates_texte en date avec la fonction
DateValue

Range("H2").Select
Selection.Sort Key1:=Range("H2"),
Order1:=xlDescending,

Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom

Dim h As Range
Range(Selection, Selection.End(xlDown)).Select
For Each h In Selection
If IsDate("" & h) Then
Cells(h.Row, Selection.Column) = DateValue("" & h)
End If
Next
ActiveSheet.ShowAllData
' Appliquer le format de date
Range("H:H").Select
Selection.NumberFormat = "d/mmm/yyyy"

.



Avatar
Céline Brien
Bonjour Denis,
Merci pour ta réponse.
Ta solution est une bonne solution pour des données copiées une seule
fois.
Dans ce cas-ci, les données sont copiées régulièrement et la
transformation en vraie date des dates en anglais n'est qu'un élément du
traitement de ces données.
Je préfère donc la solutioin en VBA.
Merci encore,
Céline

"D.LAIR" a écrit dans le message de
news:039601c3bd8d$fb991d60$
Bonjour,
Ceci fonctionne à partir d'un fichier TEXTE, contenant,
par exemple les dates suivantes :
01-Feb-04
15-Aug-03
04-jul-03
18-Aug-03
04-jul-03
14-jul-03
Je vais changer les paramètres régionaux (dans panneau de

configuration de Windows) pour choisir la langue
anglaise.
Je lance EXCEL et ouvre ce fichier TEXTE --> tout ce qui
est date est bien compris comme tel dans ma feuille.
J'enregistre au format EXCEL. Je quitte EXCEL.
Je retourne changer les paramètres régionaux (dans panneau
de configuration de Windows) re-sélectionner la langue
francaise.
Amicalement.
DL (pour m'écrire enlever le f de mon nom)
-----Message d'origine-----
Bonjour à tous,
Des dates copiées et collées dans Excel à partir d'un
base de données en

anglais.
01-Feb-04
15-Aug-03
04-juil-03
18-Aug-03
04-juil-03
14-juil-03

Certaines dates sont reconnues, d'autres ne sont pas
reconnues.

J'utilise VBA (voir codes ci-dessous) pour transformer en
vrai date ces

dates en anglais, mais le traitement des données est trop
long.

Avez-vous des suggestions ?
Merci de votre aide,
Céline
------------------------------
' Renommer les mois des colonnes de date
Range("H:K").Select
Selection.Replace What:="-Jan-", Replacement:="-janv-
",

LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Feb-", Replacement:="-févr-
",

LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Mar-", Replacement:="-mars-
",

LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Apr-", Replacement:="-avr-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-May-", Replacement:="-mai-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Jun-", Replacement:="-juin-
",

LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Jul-", Replacement:="-juil-
",

LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Aug-", Replacement:="-août-
",

LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Sep-", Replacement:="-sept-
",

LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Oct-", Replacement:="-oct-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Nov-", Replacement:="-nov-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Dec-", Replacement:="-déc-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
' Remplacer les années à 2 chiffres par des années à 4
chiffres

Range("H1").Select
Selection.AutoFilter Field:=8, Criteria1:="=*???*",
Operator:=xlAnd

Range(Selection, Selection.End(xlDown)).Select
Selection.Replace What:="-99", Replacement:="-1999",
LookAt:=xlPart,

_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-00", Replacement:="-2000",
LookAt:=xlPart,

_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-01", Replacement:="-2001",
LookAt:=xlPart,

_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-02", Replacement:="-2002",
LookAt:=xlPart,

_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-03", Replacement:="-2003",
LookAt:=xlPart,

_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-04", Replacement:="-2004",
LookAt:=xlPart,

_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-05", Replacement:="-2005",
LookAt:=xlPart,

_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-06", Replacement:="-2006",
LookAt:=xlPart,

_
SearchOrder:=xlByRows, MatchCase:úlse
On Error Resume Next
' Transformer les dates_texte en date avec la fonction
DateValue

Range("H2").Select
Selection.Sort Key1:=Range("H2"),
Order1:=xlDescending,

Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom

Dim h As Range
Range(Selection, Selection.End(xlDown)).Select
For Each h In Selection
If IsDate("" & h) Then
Cells(h.Row, Selection.Column) = DateValue("" & h)
End If
Next
ActiveSheet.ShowAllData
' Appliquer le format de date
Range("H:H").Select
Selection.NumberFormat = "d/mmm/yyyy"

.



Avatar
D.LAIR
Re-bonjour,
Et en reprenant la solution de MichDenis + la fonction
CDate de VBA ? Peut-être qu'on avance...
DL (pour m'écrire, enlever le f de mon nom)
-----Message d'origine-----
Bonjour à tous,
Des dates copiées et collées dans Excel à partir d'un
base de données en

anglais.
01-Feb-04
15-Aug-03
04-juil-03
18-Aug-03
04-juil-03
14-juil-03

Certaines dates sont reconnues, d'autres ne sont pas
reconnues.

J'utilise VBA (voir codes ci-dessous) pour transformer en
vrai date ces

dates en anglais, mais le traitement des données est trop
long.

Avez-vous des suggestions ?
Merci de votre aide,
Céline
------------------------------
' Renommer les mois des colonnes de date
Range("H:K").Select
Selection.Replace What:="-Jan-", Replacement:="-janv-
",

LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Feb-", Replacement:="-févr-
",

LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Mar-", Replacement:="-mars-
",

LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Apr-", Replacement:="-avr-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-May-", Replacement:="-mai-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Jun-", Replacement:="-juin-
",

LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Jul-", Replacement:="-juil-
",

LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Aug-", Replacement:="-août-
",

LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Sep-", Replacement:="-sept-
",

LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Oct-", Replacement:="-oct-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Nov-", Replacement:="-nov-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Dec-", Replacement:="-déc-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
' Remplacer les années à 2 chiffres par des années à 4
chiffres

Range("H1").Select
Selection.AutoFilter Field:=8, Criteria1:="=*???*",
Operator:=xlAnd

Range(Selection, Selection.End(xlDown)).Select
Selection.Replace What:="-99", Replacement:="-1999",
LookAt:=xlPart,

_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-00", Replacement:="-2000",
LookAt:=xlPart,

_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-01", Replacement:="-2001",
LookAt:=xlPart,

_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-02", Replacement:="-2002",
LookAt:=xlPart,

_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-03", Replacement:="-2003",
LookAt:=xlPart,

_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-04", Replacement:="-2004",
LookAt:=xlPart,

_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-05", Replacement:="-2005",
LookAt:=xlPart,

_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-06", Replacement:="-2006",
LookAt:=xlPart,

_
SearchOrder:=xlByRows, MatchCase:úlse
On Error Resume Next
' Transformer les dates_texte en date avec la fonction
DateValue

Range("H2").Select
Selection.Sort Key1:=Range("H2"),
Order1:=xlDescending,

Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom

Dim h As Range
Range(Selection, Selection.End(xlDown)).Select
For Each h In Selection
If IsDate("" & h) Then
Cells(h.Row, Selection.Column) = DateValue("" & h)
End If
Next
ActiveSheet.ShowAllData
' Appliquer le format de date
Range("H:H").Select
Selection.NumberFormat = "d/mmm/yyyy"

.



Avatar
Céline Brien
Bonjour à tous et à toutes,
Salut Frédéric,
Hier je n'avais pas trouvé la façon de sélectionner uniquement les dates
à traduire. C'est fait (voir codes ci-dessous).
Suite à la sélection, tes codes font très bien le travail ! Comme
toujours ;-)
Comme j'ai quatre colonnes de dates à traiter, j'ai adapté les DIM. H
pour colonne H. I pour colonne I. Etc...
Y aurait-il eu une solution plus élégante ?
Merci beaucoup,
Céline
-------------------------
Range("H1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=8, Criteria1:="<1", Operator:=xlOr,
Criteria2:="=***"
Range("H2:H" &
Range("H65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible).Select
Dim LesMoisH(), LaDateH, LeMoisH
Dim cellH As Range
LesMoisH = Array("Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
For Each cell In Selection
LaDateH = cell.Text
LeMoisH = Application.Match(Split(LaDateH, "-")(1), LesMoisH, 0)
cell.Value = DateSerial(Split(LaDateH, "-")(2), LeMoisH,
Split(LaDateH, "-")(0))
Next cell
Range("H1").Select
' Appliquer le format de date
Range("H:H").Select
Selection.NumberFormat = "d/mmm/yyyy"

"Frédéric Sigonneau" a écrit dans le
message de news:
Bonsoir,

Une approche possible, après avoir sélectionné les dates à 'traduire'
:


Sub test()
Dim LesMois(), LaDate, LeMois
Dim cell As Range
LesMois = Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", _
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
For Each cell In Selection
LaDate = cell.Text
LeMois = Application.Match(Split(LaDate, "-")(1), LesMois, 0)
cell.Value = _
DateSerial(Split(LaDate, "-")(2), LeMois, Split(LaDate, "-")(0))
Next cell
End Sub

(Attention : nécessite Excel 2000 ou + récent..)

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour à tous,
Des dates copiées et collées dans Excel à partir d'un base de
données en


anglais.
01-Feb-04
15-Aug-03
04-juil-03
18-Aug-03
04-juil-03
14-juil-03

Certaines dates sont reconnues, d'autres ne sont pas reconnues.
J'utilise VBA (voir codes ci-dessous) pour transformer en vrai date
ces


dates en anglais, mais le traitement des données est trop long.
Avez-vous des suggestions ?
Merci de votre aide,
Céline
------------------------------
' Renommer les mois des colonnes de date
Range("H:K").Select
Selection.Replace What:="-Jan-", Replacement:="-janv-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Feb-", Replacement:="-févr-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Mar-", Replacement:="-mars-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Apr-", Replacement:="-avr-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-May-", Replacement:="-mai-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Jun-", Replacement:="-juin-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Jul-", Replacement:="-juil-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Aug-", Replacement:="-août-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Sep-", Replacement:="-sept-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Oct-", Replacement:="-oct-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Nov-", Replacement:="-nov-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Dec-", Replacement:="-déc-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
' Remplacer les années à 2 chiffres par des années à 4 chiffres
Range("H1").Select
Selection.AutoFilter Field:=8, Criteria1:="=*???*",
Operator:=xlAnd


Range(Selection, Selection.End(xlDown)).Select
Selection.Replace What:="-99", Replacement:="-1999",
LookAt:=xlPart,


_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-00", Replacement:="-2000",
LookAt:=xlPart,


_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-01", Replacement:="-2001",
LookAt:=xlPart,


_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-02", Replacement:="-2002",
LookAt:=xlPart,


_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-03", Replacement:="-2003",
LookAt:=xlPart,


_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-04", Replacement:="-2004",
LookAt:=xlPart,


_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-05", Replacement:="-2005",
LookAt:=xlPart,


_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-06", Replacement:="-2006",
LookAt:=xlPart,


_
SearchOrder:=xlByRows, MatchCase:úlse
On Error Resume Next
' Transformer les dates_texte en date avec la fonction DateValue
Range("H2").Select
Selection.Sort Key1:=Range("H2"), Order1:=xlDescending,
Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
Dim h As Range
Range(Selection, Selection.End(xlDown)).Select
For Each h In Selection
If IsDate("" & h) Then
Cells(h.Row, Selection.Column) = DateValue("" & h)
End If
Next
ActiveSheet.ShowAllData
' Appliquer le format de date
Range("H:H").Select
Selection.NumberFormat = "d/mmm/yyyy"





Avatar
Frédéric Sigonneau
Bonsoir Céline,


Comme j'ai quatre colonnes de dates à traiter, j'ai adapté les DIM. H
pour colonne H. I pour colonne I. Etc...
Y aurait-il eu une solution plus élégante ?


Peut-etre, oui. Mais du coup je veux bien un échantillon de ton fichier pour
mieux me rendre compte de tes données et de leur disposition.

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !

Merci beaucoup,
Céline
-------------------------
Range("H1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=8, Criteria1:="<1", Operator:=xlOr,
Criteria2:="=***"
Range("H2:H" &
Range("H65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible).Select
Dim LesMoisH(), LaDateH, LeMoisH
Dim cellH As Range
LesMoisH = Array("Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
For Each cell In Selection
LaDateH = cell.Text
LeMoisH = Application.Match(Split(LaDateH, "-")(1), LesMoisH, 0)
cell.Value = DateSerial(Split(LaDateH, "-")(2), LeMoisH,
Split(LaDateH, "-")(0))
Next cell
Range("H1").Select
' Appliquer le format de date
Range("H:H").Select
Selection.NumberFormat = "d/mmm/yyyy"

"Frédéric Sigonneau" a écrit dans le
message de news:
Bonsoir,

Une approche possible, après avoir sélectionné les dates à 'traduire'
:


Sub test()
Dim LesMois(), LaDate, LeMois
Dim cell As Range
LesMois = Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", _
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
For Each cell In Selection
LaDate = cell.Text
LeMois = Application.Match(Split(LaDate, "-")(1), LesMois, 0)
cell.Value = _
DateSerial(Split(LaDate, "-")(2), LeMois, Split(LaDate, "-")(0))
Next cell
End Sub

(Attention : nécessite Excel 2000 ou + récent..)

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour à tous,
Des dates copiées et collées dans Excel à partir d'un base de
données en


anglais.
01-Feb-04
15-Aug-03
04-juil-03
18-Aug-03
04-juil-03
14-juil-03

Certaines dates sont reconnues, d'autres ne sont pas reconnues.
J'utilise VBA (voir codes ci-dessous) pour transformer en vrai date
ces


dates en anglais, mais le traitement des données est trop long.
Avez-vous des suggestions ?
Merci de votre aide,
Céline
------------------------------
' Renommer les mois des colonnes de date
Range("H:K").Select
Selection.Replace What:="-Jan-", Replacement:="-janv-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Feb-", Replacement:="-févr-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Mar-", Replacement:="-mars-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Apr-", Replacement:="-avr-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-May-", Replacement:="-mai-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Jun-", Replacement:="-juin-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Jul-", Replacement:="-juil-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Aug-", Replacement:="-août-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Sep-", Replacement:="-sept-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Oct-", Replacement:="-oct-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Nov-", Replacement:="-nov-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Dec-", Replacement:="-déc-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
' Remplacer les années à 2 chiffres par des années à 4 chiffres
Range("H1").Select
Selection.AutoFilter Field:=8, Criteria1:="=*???*",
Operator:=xlAnd


Range(Selection, Selection.End(xlDown)).Select
Selection.Replace What:="-99", Replacement:="-1999",
LookAt:=xlPart,


_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-00", Replacement:="-2000",
LookAt:=xlPart,


_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-01", Replacement:="-2001",
LookAt:=xlPart,


_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-02", Replacement:="-2002",
LookAt:=xlPart,


_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-03", Replacement:="-2003",
LookAt:=xlPart,


_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-04", Replacement:="-2004",
LookAt:=xlPart,


_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-05", Replacement:="-2005",
LookAt:=xlPart,


_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-06", Replacement:="-2006",
LookAt:=xlPart,


_
SearchOrder:=xlByRows, MatchCase:úlse
On Error Resume Next
' Transformer les dates_texte en date avec la fonction DateValue
Range("H2").Select
Selection.Sort Key1:=Range("H2"), Order1:=xlDescending,
Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
Dim h As Range
Range(Selection, Selection.End(xlDown)).Select
For Each h In Selection
If IsDate("" & h) Then
Cells(h.Row, Selection.Column) = DateValue("" & h)
End If
Next
ActiveSheet.ShowAllData
' Appliquer le format de date
Range("H:H").Select
Selection.NumberFormat = "d/mmm/yyyy"







Avatar
Céline Brien
Salut Frédéric,
Merci pour ta réponse.
Je te fais parvenir un fichier demain mercredi. Je dois d'abord
supprimer les info confidentiels.
Merci encore,
Céline

"Frédéric Sigonneau" a écrit dans le
message de news:
Bonsoir Céline,


Comme j'ai quatre colonnes de dates à traiter, j'ai adapté les DIM.
H


pour colonne H. I pour colonne I. Etc...
Y aurait-il eu une solution plus élégante ?


Peut-etre, oui. Mais du coup je veux bien un échantillon de ton
fichier pour

mieux me rendre compte de tes données et de leur disposition.

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !

Merci beaucoup,
Céline
-------------------------
Range("H1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=8, Criteria1:="<1", Operator:=xlOr,
Criteria2:="=***"
Range("H2:H" &

Range("H65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible).Select


Dim LesMoisH(), LaDateH, LeMoisH
Dim cellH As Range
LesMoisH = Array("Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
For Each cell In Selection
LaDateH = cell.Text
LeMoisH = Application.Match(Split(LaDateH, "-")(1),
LesMoisH, 0)


cell.Value = DateSerial(Split(LaDateH, "-")(2), LeMoisH,
Split(LaDateH, "-")(0))
Next cell
Range("H1").Select
' Appliquer le format de date
Range("H:H").Select
Selection.NumberFormat = "d/mmm/yyyy"

"Frédéric Sigonneau" a écrit dans le
message de news:
Bonsoir,

Une approche possible, après avoir sélectionné les dates à
'traduire'



:

Sub test()
Dim LesMois(), LaDate, LeMois
Dim cell As Range
LesMois = Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", _
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
For Each cell In Selection
LaDate = cell.Text
LeMois = Application.Match(Split(LaDate, "-")(1), LesMois, 0)
cell.Value = _
DateSerial(Split(LaDate, "-")(2), LeMois, Split(LaDate,
"-")(0))



Next cell
End Sub

(Attention : nécessite Excel 2000 ou + récent..)

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour à tous,
Des dates copiées et collées dans Excel à partir d'un base de
données en


anglais.
01-Feb-04
15-Aug-03
04-juil-03
18-Aug-03
04-juil-03
14-juil-03

Certaines dates sont reconnues, d'autres ne sont pas reconnues.
J'utilise VBA (voir codes ci-dessous) pour transformer en vrai
date




ces
dates en anglais, mais le traitement des données est trop long.
Avez-vous des suggestions ?
Merci de votre aide,
Céline
------------------------------
' Renommer les mois des colonnes de date
Range("H:K").Select
Selection.Replace What:="-Jan-", Replacement:="-janv-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Feb-", Replacement:="-févr-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Mar-", Replacement:="-mars-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Apr-", Replacement:="-avr-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-May-", Replacement:="-mai-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Jun-", Replacement:="-juin-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Jul-", Replacement:="-juil-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Aug-", Replacement:="-août-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Sep-", Replacement:="-sept-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Oct-", Replacement:="-oct-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Nov-", Replacement:="-nov-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-Dec-", Replacement:="-déc-",
LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse
' Remplacer les années à 2 chiffres par des années à 4
chiffres




Range("H1").Select
Selection.AutoFilter Field:=8, Criteria1:="=*???*",
Operator:=xlAnd


Range(Selection, Selection.End(xlDown)).Select
Selection.Replace What:="-99", Replacement:="-1999",
LookAt:=xlPart,


_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-00", Replacement:="-2000",
LookAt:=xlPart,


_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-01", Replacement:="-2001",
LookAt:=xlPart,


_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-02", Replacement:="-2002",
LookAt:=xlPart,


_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-03", Replacement:="-2003",
LookAt:=xlPart,


_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-04", Replacement:="-2004",
LookAt:=xlPart,


_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-05", Replacement:="-2005",
LookAt:=xlPart,


_
SearchOrder:=xlByRows, MatchCase:úlse
Selection.Replace What:="-06", Replacement:="-2006",
LookAt:=xlPart,


_
SearchOrder:=xlByRows, MatchCase:úlse
On Error Resume Next
' Transformer les dates_texte en date avec la fonction
DateValue




Range("H2").Select
Selection.Sort Key1:=Range("H2"), Order1:=xlDescending,
Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom




Dim h As Range
Range(Selection, Selection.End(xlDown)).Select
For Each h In Selection
If IsDate("" & h) Then
Cells(h.Row, Selection.Column) = DateValue("" & h)
End If
Next
ActiveSheet.ShowAllData
' Appliquer le format de date
Range("H:H").Select
Selection.NumberFormat = "d/mmm/yyyy"










Avatar
sabatier
notre rainette serait-elle une proche d'Oussama?
appelez-moi doubleiou...
jps

"Céline Brien" wrote:

. Je dois d'abord supprimer les info confidentielles.


Avatar
sabatier
c'est quoi cette bête, céline? y aurait-il un rapport avec mes lèvres
qui présentement sont toutes GRC?
jps

"Céline Brien" wrote:

Allo le plus crapaud des crapauds !
La GRC tu connais ?
Al Etteniar

"sabatier" a écrit dans le message de
news:
notre rainette serait-elle une proche d'Oussama?
appelez-moi doubleiou...
jps

"Céline Brien" wrote:

. Je dois d'abord supprimer les info confidentielles.







Avatar
Céline Brien
Allo le plus crapaud des crapauds !
La GRC tu connais ?
Al Etteniar

"sabatier" a écrit dans le message de
news:
notre rainette serait-elle une proche d'Oussama?
appelez-moi doubleiou...
jps

"Céline Brien" wrote:

. Je dois d'abord supprimer les info confidentielles.





1 2