Mise en forme&importation de fichier texte vb
Roadmender
-
Roadmender -
Roadmender -
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.
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:
- Mise en forme&importation de fichier texte vb
- Mise en forme conditionnelle excel - Guide
- Fichier bin - Guide
- Mise en forme tableau word - Guide
- Fichier epub - Guide
- Fichier rar - Guide
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)
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
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