[VBA] Convertion de date. [resolu]

mulpha

XLDnaute Nouveau
Bonjour à tous le monde.

Et merci à ceux qui ont osez s'aventurer sur mon topic.

J'ai un petit souci lorsque j'extrais mes données de mon ERP(oracle donc) avec les formats de date.
Pour résoudre ce souci j'ai fais manuelement le remplacement de "aug-09" par "août-09" puis ensuite convertir en format date.
Dans ce cas la pas de problème.

Ensuite j'ai voulu intégrer le remplacer puis convertir dans une macro et là... ca marche pô.
Pour info voir mon fichier joint.

Je fais donc appel a vos lumières pour me venir en aide.

Merci par avance
 

Pièces jointes

  • changement de date provenant d'oracle.xls
    23 KB · Affichages: 57
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : [VBA] Convertion de date. Convertir en manuel=ok par macro= pas ok ???

Bonjour Mulpha

A tester:
Code:
Sub test()
Columns("A:A").Select
Selection.Replace What:="FEB", Replacement:="Fév", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.Replace What:="APR", Replacement:="avril", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="MAY", Replacement:="mai", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="JUN", Replacement:="juin", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="JUL", Replacement:="juil", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="aug", Replacement:="août", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=True
Selection.Replace What:="DEC", Replacement:="déc", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
tablo = Range("A2:A" & Range("A65536").End(xlUp).Row)
For n = LBound(tablo, 1) To UBound(tablo, 1)
x = Split(tablo(n, 1), "-")
If UBound(x) > 0 Then
tablo(n, 1) = CDate("01/" & x(0) & "/" & x(1))
End If
Next n
Range("A2").Resize(UBound(tablo, 1), 1) = tablo
Columns("A:A").NumberFormat = "mmm-yy"
End Sub
 

Misange

XLDnaute Barbatruc
Re : [VBA] Convertion de date. Convertir en manuel=ok par macro= pas ok ???

Bonjour


Je te propose comme ça pour forcer excel à comprendre qu'il s'agit d'une date
Code:
    Selection.Replace What:="FEB-", Replacement:="01/02/", LookAt:=xlPart
    Selection.Replace What:="APR-", Replacement:="01/04/", LookAt:=xlPart
    Selection.Replace What:="MAY-", Replacement:="01/05/", LookAt:=xlPart
    Selection.Replace What:="JUN-", Replacement:="01/06/", LookAt:=xlPart
    Selection.Replace What:="JUL-", Replacement:="01/07/", LookAt:=xlPart
    Selection.Replace What:="AUG-", Replacement:="01/08/", LookAt:=xlPart
    Selection.Replace What:="DEC-", Replacement:="01/12/", LookAt:=xlPart
 

mulpha

XLDnaute Nouveau
Re : [VBA] Convertion de date. Convertir en manuel=ok par macro= pas ok ???

Merci beacoup à vous 2 pour vos 2 solutions qui marchent parfaitement !!!

Misange ta solution est plus simple j'aurais pu y penser d'ailleurs...

Mais celle de pierrejean est un défi à comprendre lol ! (je vais bien sur la décortiquer !)

Encore merci pour votre patience et votre aide dont vous faites preuve sur le forum.

Pour information, ce morceau de code sera insérer dans une macro pour une grande entreprise francaise qui tournera tous les mois (dixaines d'extractions réalisées par mois) Eh oui, vous avez encore contribué à améliorer l'efficassité francaise ;)

A bientot peut etre
Cdlt
Mulpha
 

Discussions similaires

Réponses
20
Affichages
2 K