dates JJ/MM/AA et fichier CSV

jhofman

XLDnaute Occasionnel
Bonjour


j'essaye par tous les moyens (depuis des mois) à lire des données dates stockées dans un fichier CSV.

Ces dates sont parfois inversées : 12/01/2010 -> 01/12/2010. et donc mes traitements perdent en fiabilité !!!

Comment éviter ce problème ?
Doit-on comme je l'ai lu faire en sorte que les date dans le fichier csv soient exportées systématiquement au mm/jj/aaaa ???
Merci de votre aide. je ne vois pas de solutions sans changer format fichier csv en entrée dont je ne suis pas maître.
 

tototiti2008

XLDnaute Barbatruc
Re : dates JJ/MM/AA et fichier CSV

Re,

Les données externes font un "lien" avec les données (qui peut être rafraichi), et ce lien est associé à un nom
Si tu n'as pas besoin de rafraichir, je te propose de supprimer le lien auquel cas ça équivaudra à un import) et le nom (Name) sera supprimé automatiquement avec le lien

VB:
Sub ImportTXT(destSheet As Range, csvFilePath As String)
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & csvFilePath _
, Destination:=destSheet)
.Name = "fichierlu"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 1, 4, _
1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
.Delete
End With
 
End Sub
 

jhofman

XLDnaute Occasionnel
Re : dates JJ/MM/AA et fichier CSV

Merci

j'ai donc ajouté
Code:
.Delete
à la fin de l'instruction.

mais cela ne m'évite pas de supprimer les noms que je génére à chaque exécution !!

je dois toujours procéder à ( qui en fait un peu trop... )mais ce peut toujours servir.
Sub SuppressionNomstest()
Dim Nom As Name
For Each Nom In ActiveWorkbook.Names
If Left(Nom.NameLocal, 20) = "TEMP!DonnéesExternes" Then
Nom.Delete
End If
Next Nom
End Sub
 
Dernière édition:

Discussions similaires

Réponses
13
Affichages
1 K

Statistiques des forums

Discussions
312 330
Messages
2 087 349
Membres
103 526
dernier inscrit
HEC