Problème de conversion csv avec des dates

lebarbo

XLDnaute Occasionnel
Bonjour à tous,

J'ai un code qui me permet d'enregistrer une pièce jointe quand un mail arrive dans ma boite aux lettres, jusque là ça va. Ensuite le CSV est retraité pour modifier certaines cellules grâce à du VBA.
Mon souci est que cette transformation me modifie mes dates et les passes en format anglais automatiquement.

Voici mon code dans Otulook :

Dans le ThisOutlook j'ai :
---------------------------------------------
Dim WithEvents objInbox As Outlook.Items
Private Sub Application_Startup()
Set objInbox = Session.GetDefaultFolder(olFolderInbox).Items
End Sub

Private Sub objInbox_ItemAdd(ByVal Item As Object)
Const xlNormal = -4143

If Item.Class = OLmail And InStr(1, Item.Subject, "Repères") > 0 Then
If Item.Attachments.Count > 0 Then
Dim objAttachments As Outlook.Attachments
Set objAttachments = Item.Attachments
For Each objAttach In objAttachments
' Does not handle duplicate filename scenarios
objAttach.SaveAsFile "C:\Mon dossier\essai.csv" '& objAttach.FileName

Next
Set objAttachments = Nothing
Call modif
End If
End If

End Sub
------------------------------------

Dans mon module :
----------------------------------
Sub modif()
Dim appExcel
Dim wbExcel
Dim wsExcel

Const xlDown = -4121
Const xlDelimited = 1

'Ouverture de l'application
Set appExcel = CreateObject("Excel.Application")
''Ouverture d'un fichier Excel
Set wbExcel = appExcel.Workbooks.Open("C:\Mon dossier\essai.csv")
'wsExcel correspond à la première feuille du fichier
Set wsExcel = wbExcel.Worksheets(1)

appExcel.DisplayAlerts = False
wsExcel.Columns(1).TextToColumns Destination:=wsExcel.Range("A1"), DataType:=xlDelimited, Tab:=False, Semicolon:=True
appExcel.DisplayAlerts = True

'Code pour modifier le fichier

DerLigne = wsExcel.Range("A1").End(xlDown).Row

For i = 2 To DerLigne

If wsExcel.Cells(i, 2).Value = "55" Then
wsExcel.Cells(i, 6).Value = wsExcel.Cells(i, 6).Value & "Oui"
End If

Next i

appExcel.DisplayAlerts = False
wbExcel.SaveAs "C:\Mon dossier\essai.csv", FileFormat:=xlCSV, CreateBackup:=False, Local:=True
appExcel.DisplayAlerts = True


wbExcel.Close False 'Fermeture du classeur Excel
appExcel.Quit 'Fermeture de l'application Excel
'Désallocation mémoire
Set wsExcel = Nothing
Set wbExcel = Nothing
Set appExcel = Nothing

End Sub
---------------------------
A mon avis le problème vient de ce code :
wsExcel.Columns(1).TextToColumns Destination:=wsExcel.Range("A1"), DataType:=xlDelimited, Tab:=False, Semicolon:=True

Mais je ne sais pas quoi faire.

Merci d'avance,
 

Pièces jointes

  • essai4.zip
    310 bytes · Affichages: 37
  • essai4.zip
    310 bytes · Affichages: 39
  • essai4.zip
    310 bytes · Affichages: 35
Dernière édition:

lebarbo

XLDnaute Occasionnel
Re : Problème de conversion csv avec des dates

Bonjour à tous,

Après de longues heures de recherche, j'ai trouvé la solution, il suffisait d'ajouter :
FieldInfo:=Array(0, xlDMYFormat)
à la ligne :
wsExcel.Columns(1).TextToColumns Destination:=wsExcel.Range("A1"), DataType:=xlDelimited, Tab:=False, Semicolon:=True

Il suffisait juste de le savoir ; )
 

Discussions similaires

Réponses
3
Affichages
124

Statistiques des forums

Discussions
311 720
Messages
2 081 904
Membres
101 834
dernier inscrit
Jeremy06510