Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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
michdenis
Bonjour Céline,

Ceci ne s'occupe que de substituer les chaînes de caractère indésirables par celles que tu désires

Tu dois compléter la liste des mois des 2 variables(arr et arr1) correctement avec chacune des abréviations des mois dans la
langue appropriée.

'----------------------------
Sub Remplacer()

Dim Arr, Arr1(), Old As String, Neo As String

Arr = Array("Janv", "Févr", "Mars", "Avr") 'Français
Arr1 = Array("Jan", "Fev", "March", "Apr") 'Anglais

For A = 1 To UBound(Arr1)
Old = Application.Index(Arr1, A)
Neo = Application.Index(Arr, A)
With Worksheets("Feuil1")
.Range("H:K").Replace Old, Neo
End With
Next

End Sub
'----------------------------


Salutations!



"Céline Brien" a écrit dans le message de news:
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
Christophe Joly
Bonsoir Céline:

Je ne suis pas un expert mais je constate que dans les dates que tu as pris
en exemple tu as juil en lieu et place de Jul (pour July) donc les dates
contenant juil ne peuvent pas etre "traduites". Comme je ne suis pas calé
en macro pour ma part je selectionnerais simplement les dates puis
FORMAT/CELLULE/NOMBRE/date et là du choisi le format ( qui apparait en
francais si les paramètres regionaux sont en francais).

Christophe
"Céline Brien" a écrit dans le message de
news:
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,

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
Michel Pierron
Bonsoir Céline;
Un peu tordu du bulbe mais...
Sub fDate()
Const Chain = "JanFebMarAprMayJunJulAugSepOctNovDec"
Dim i As Integer, Mois As Byte
i = 1
While Cells(i, 1) <> ""
If Not IsDate(Cells(i, 1)) Then
Mois = 1 + Fix(InStr(1, Chain, Mid(Cells(i, 1), 4, 3)) / 3)
Cells(i, 1) = DateSerial(Val(Mid(Cells(i, 1), 8)) _
, Mois, Val(Left(Cells(i, 1), 2)))
Else
Cells(i, 1).NumberFormat = "m/d/yyyy"
End If
i = i + 1
Wend
End Sub

MP

"Céline Brien" a écrit dans le message de
news:
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 MichDenis,
Merci pour ta réponse. Malheureusement, tes codes ne transforment pas en
vraie date les dates en anglais.
Un vrai date est alignée à droite, comme tous les nombres, et se
présente comme ceci dans la barre de formule : aaaa-mm-jj.
Ta macro transforme 15-May-00 en 15-Mai-00. L'alignement demeure à
gauche.
Merci tout de même,
Céline


"michdenis" a écrit dans le message de
news:ed0%
Bonjour Céline,

Ceci ne s'occupe que de substituer les chaînes de caractère
indésirables par celles que tu désires


Tu dois compléter la liste des mois des 2 variables(arr et arr1)
correctement avec chacune des abréviations des mois dans la

langue appropriée.

'----------------------------
Sub Remplacer()

Dim Arr, Arr1(), Old As String, Neo As String

Arr = Array("Janv", "Févr", "Mars", "Avr") 'Français
Arr1 = Array("Jan", "Fev", "March", "Apr") 'Anglais

For A = 1 To UBound(Arr1)
Old = Application.Index(Arr1, A)
Neo = Application.Index(Arr, A)
With Worksheets("Feuil1")
.Range("H:K").Replace Old, Neo
End With
Next

End Sub
'----------------------------


Salutations!



"Céline Brien" a écrit dans le message
de news:

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.
Ta macro effectue seulement une partie du travail.
Je peux te faire parvenir un fichier contenant des dates mélangées
(anglais et français) si tu désires expérimenter plus à fond la solution
à ce problème.
La solution de Michel Pierron fonctionne mieux. Un peu trop même, elle
transforme même le titre de la colonne en date ! Pour l'instant elle
s'applique uniquement à la colonne A. Je dois mieux la comprendre pour
l'appliquer aux colonnes de mon choix et garder mon titre de colonne
intacte.
Merci encore pour ton aide !
Céline

"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
Bonjour Michel,
Merci beaucoup pour ta réponse.
Tes codes font le travail à merveille et très rapidement. Un peu trop
même, ils transforment même le titre de la colonne en date ! Pour
l'instant ils s'appliquent uniquement à la colonne A. Je dois mieux la
comprendre pour l'appliquer aux colonnes de mon choix et garder mon
titre de colonne intact.
Si tu as d'autres codes tordus, ils sont bienvenus !
Je peux te faire parvenir un fichier contenant des dates mélangées
(anglais et français) si tu désires expérimenter plus à fond la solution
à ce problème.
Merci encore pour ton aide !
Céline

"Michel Pierron" a écrit dans le message de
news:epl%
Bonsoir Céline;
Un peu tordu du bulbe mais...
Sub fDate()
Const Chain = "JanFebMarAprMayJunJulAugSepOctNovDec"
Dim i As Integer, Mois As Byte
i = 1
While Cells(i, 1) <> ""
If Not IsDate(Cells(i, 1)) Then
Mois = 1 + Fix(InStr(1, Chain, Mid(Cells(i, 1), 4, 3)) / 3)
Cells(i, 1) = DateSerial(Val(Mid(Cells(i, 1), 8)) _
, Mois, Val(Left(Cells(i, 1), 2)))
Else
Cells(i, 1).NumberFormat = "m/d/yyyy"
End If
i = i + 1
Wend
End Sub

MP

"Céline Brien" a écrit dans le message
de

news:
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
...ou le monologue de ma rainette préférée dans la froide nuit d'une france
endormie...
jps alias chateau(pas)briand

"Céline Brien" wrote:

Bonjour Michel,
Merci beaucoup pour ta réponse.



Avatar
Clément Marcotte
Bonjour,

Si tes dates commencent en ligne 2, remplace:

i = 1



Par

i = 2, et ainsi de suite.

Pour travailler avec la colonne B, remplace

While Cells(i, 1) <> ""



par

While Cells(i, 2) <> ""

et ainsi de suite.

dans la propriété cells(i,j) , le premier chiffre désigne la ligne de
la cellule, et le second, la colonne (a = 1, b = 2 etc..,)


Avatar
Céline Brien
Bonsoir Clément,
Merci beaucoup pour ces précisions.
Le tout fonctionne très bien !
Merci encore à tous !
Céline

"Clément Marcotte" a écrit dans le
message de news:%
Bonjour,

Si tes dates commencent en ligne 2, remplace:

i = 1



Par

i = 2, et ainsi de suite.

Pour travailler avec la colonne B, remplace

While Cells(i, 1) <> ""



par

While Cells(i, 2) <> ""

et ainsi de suite.

dans la propriété cells(i,j) , le premier chiffre désigne la ligne de
la cellule, et le second, la colonne (a = 1, b = 2 etc..,)








1 2