Dates Importées En Anglais

  • Initiateur de la discussion opera_8
  • Date de début
O

opera_8

Guest
Bonjour à toute l'équipe,

Votre Forum est Excellent et en vous lisant je découvre une Collegialité sans pareil, bravo!

Voici mon petit problème que je n'arrives pas à solutionner:
Un fichier exporté vers Excel affiche sur plusieures colonnes les dates en anglais. Pour travailler le fichier je dois convertir ces dates, ex.:

12-may-2002 12.05.2002
14-apr-2001 14.04.2001
ou
02-feb-2000 02 févr 2000
20-aug-2002 20 août 2002

Avec "Selection Colonne, Edition, Remplacer..." j'obtiens le résultat, mais cette solution me semble fastidieuse.
Il faut la répeter pour les 12 mois et ce cas se présente sur plusieurs fichiers chaque semaine.

Si vous avez une solution, merci de votre aide
 
M

Mytå

Guest
Salut opera_8

Tu pourrais mettre une macro comme ceci dans ThisWorkbook.

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Application.ScreenUpdating = False
Dim mois(1 To 12) As String, i As Byte
mois(1) = "-jan-": mois(2) = "-feb-": mois(3) = "-mar-": mois(4) = "-apr-"
mois(5) = "-may-": mois(6) = "-jun-": mois(7) = "-jui-": mois(8) = "-aug-"
mois(9) = "-sep-": mois(10) = "-oct-": mois(11) = "-nov-": mois(12) = "-dec-"
Columns("A:A").Select
For i = 1 To 9
Selection.Replace What:="" & mois(i) & "", Replacement:=".0" & i & ".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Next i
For i = 10 To 12
Selection.Replace What:="" & mois(i) & "", Replacement:="." & i & ".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Next i
Range("A1").Select
Application.ScreenUpdating = True
End Sub

smiley_417.gif
 
M

Monique

Guest
Bonjour,

Peut-être un début de solution.
Pour transformer may en 5, apr en 4, créer un tableau de 2 colonnes :
à gauche : les 3 lettres, à droite : le nombre correspondant.
Si la date en anglais est dans la colonne C, le tableau de correspondance de A1 à B12
=DATE(DROITE(C1;4);RECHERCHEV(STXT(C1;4;3);table;2;0);GAUCHE(C1;2))
DROITE(C1;4) extrait les 4 chiffres de l'année, à droite.
RECHERCHEV(STXT(C1;4;3);$A$1:$B$12;2;0) cherche dans le tableau de correspondance les 3 caractères, à partir du 4è, de la date en anglais.
GAUCHE(C1;2) extrait les 2 premiers caractères à gauche
DATE(x;y;z) donne la date de l'année x au mois y et au jour z
On peut faire des comptes avec le résultat, il est numérique.
En espérant que 2 ou 3 mois anglais ne commencent pas par les 3 mêmes lettres.
 

Statistiques des forums

Discussions
312 195
Messages
2 086 078
Membres
103 111
dernier inscrit
Eric68350