Mise en forme&importation de fichier texte vb

Fermé
Roadmender - 15 déc. 2009 à 12:06
 Roadmender - 15 déc. 2009 à 14:00
Bonjour,
J’ai besoin de votre aide s’il vous plait.
J’ai un fichier texte comportant plus de 57000 lignes à importer dans un ou plusieurs classeurs Excel. Jusque la pas de problème, le sujet a été largement traité. Mon problème c’est que je n’arrive pas à la mettre en forme dans Excel… Chaque donnée de mon fichier texte est séparées par une tabulation et chaque ligne sont différencié par un retour chariot. Je voudrai mettre chaque donnée dans une colonne distincte et chaque ligne dans une ligne distincte. Mais j’ai beau essayer je n’y arrive pas car je débute.
Voila le code que j’ai adapté :

Sub ImportLargeFile()
Dim strFilePath As String, strFilename As String, vFullPath As Variant
Dim lngCounter As Long
Dim oConn As Object, oRS As Object, oFSObj As Object

'vFullPath = Application.GetOpenFilename("Text Files (*.txt),*.txt", , "Please select text file...")
vFullPath = "C:\Log.txt"
If vFullPath = False Then Exit Sub
Application.ScreenUpdating = False
Set oFSObj = CreateObject("Scripting.FileSystemObject")
strFilePath = oFSObj.GetFile(vFullPath).ParentFolder.Path
strFilename = oFSObj.GetFile(vFullPath).Name

Set oConn = CreateObject("ADODB.CONNECTION")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & strFilePath & ";" & _
"Extended Properties=""text;HDR=Yes;FMT=Delimited"""

Set oRS = CreateObject("AdoDb.Recordset")

oRS.Open "SELECT * FROM " & strFilename, oConn, 1, 1, 1
While Not oRS.EOF
Sheets.Add
'ActiveSheet.Range("A1").CopyFromRecordset oRS, 65536
ActiveSheet.Paste
Wend
oRS.Close
oConn.Close
Application.ScreenUpdating = True
End Sub

Merci de m’aider ou de m’orienter svp.
A voir également:

1 réponse

Bonjour,

A moins d'y être obligé, tu n'as pas besoin de macro pour importer un fichier texte dans Excel.
Dans le Menu Fichier/Ouvrir...
Selectionner le type de fichier dans la liste déroulante par exemple "Fichier texte *.txt". Si le type n'y figure pas, selectionner "Tous les Fichiers *.*" . Quand tu vois ton fichier dans la fenêtre d'exploration, selectionnes-le et Ouvrir.
L'assistant d'importation démarre. Choisir parmis les options proposées celles qui conviennent pour ton fichier, un petit apperçu permet de voir le resultat obtenu. Passer à l'écran suivant puis Terminer.

Si tu as besoin d'une macro, tu enregistres toute la manip en créant une nouvelle macro. Il ne reste plus qu'a paramétrer le code, par exemple changer le nom du fichier par une variable.

J'ai fait un essai avec un de mes fichiers, voilà ce que ça donne:(ne pas le reprendre pour toi, ça ne marchera surement pas)

Sub ImporterFichierTexte()
'
    Workbooks.OpenText Filename:= _
        "D:\leve-complementaire.xyz", Origin:=xlMSDOS, _
        StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
        , Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), _
        Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1)), TrailingMinusNumbers _
        :=False
End Sub
0
Merci de ta reponse Calibos,
Je voudrai automatiser cette tâche car je le réalise tout les jours...
Je vais essayer ce que tu viens de m'indiqué ca m'a l'air pas mal.
Ecore merci
0