Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Decouper fichier texte

  • Initiateur de la discussion Initiateur de la discussion Phil_PF
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

P

Phil_PF

Guest
Bonjour le forum

Je pense que c'est possible mais je ne sais pas trop comment, j'en appelle donc à vos talents :
Je viens de recevoir des fichiers textes enoooooormes et excel (2000) arrête l'importation à la 65535eme ligne. Serait-il possible avec le VBA de lire ces fichiers séquentiellement pour pouvoir les importer dans des feuilles séparées.

merci d'avance
 
Re : Decouper fichier texte

Salut,

Ca doit etre possible mais il y faudrai connaitre comment tu l'importes.
Mets nous 2 ou 3 lignes de ton fichier source et le resultat apres import pour
voir a quoi tu veux arriver

++
 
Re : Decouper fichier texte

Bonjour à tous




'Source:Ce lien n'existe plus
Code:
[SIZE=2][COLOR=#0000ff]Sub[/COLOR] ImportLargeFile()
[/SIZE][SIZE=2][COLOR=#006600]' Imports text file into Excel workbook using ADO.
' If the number of records exceeds 65536 then it splits it over more than one sheet.
[/COLOR]
[COLOR=#0000ff]Dim[/COLOR] strFilePath [COLOR=#0000ff]As String[/COLOR], strFilename [COLOR=#0000ff]As String[/COLOR], vFullPath [/SIZE][SIZE=2][COLOR=#0000ff]As Variant
[/COLOR][COLOR=#0000ff]Dim[/COLOR] lngCounter [/SIZE][SIZE=2][COLOR=#0000ff]As Long
[/COLOR][COLOR=#0000ff]Dim[/COLOR] oConn [COLOR=#0000ff]As Object[/COLOR], oRS [COLOR=#0000ff]As Object[/COLOR], oFSObj [/SIZE][SIZE=2][COLOR=#0000ff]As Object
[/COLOR]
[/SIZE][SIZE=2][COLOR=#006600]' Get a text file name
[/COLOR]vFullPath = Application.GetOpenFilename("Text Files (*.txt),*.txt", , "Please select text file...")

[COLOR=#0000ff]If[/COLOR] vFullPath = [COLOR=#0000ff]False Then Exit Sub[/COLOR] [COLOR=#006600]'User pressed Cancel on the open file dialog[/COLOR]
Application.ScreenUpdating = [/SIZE][SIZE=2][COLOR=#0000ff]False
[/COLOR]
[/SIZE][SIZE=2][COLOR=#006600]' This gives us a full path name e.g. C:\folder\file.txt
' We need to split this into path and file name
[/COLOR][COLOR=#0000ff]Set[/COLOR] oFSObj = CreateObject("SCRIPTING.FILESYSTEMOBJECT")
strFilePath = oFSObj.GetFile(vFullPath).ParentFolder.Path
strFilename = oFSObj.GetFile(vFullPath).Name

[COLOR=#006600]' Open an ADO connection to the folder specified[/COLOR]
[COLOR=#0000ff]Set[/COLOR] oConn = CreateObject("ADODB.CONNECTION")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=" & strFilePath & ";" & _
    "Extended Properties=""text;HDR=Yes;FMT=Delimited"""

[COLOR=#0000ff]Set[/COLOR] oRS = CreateObject("ADODB.RECORDSET")

[/SIZE][SIZE=2][COLOR=#006600]' Now actually open the text file and import into Excel
[/COLOR]oRS.Open "SELECT * FROM " & strFilename, oConn, 3, 1, 1
[COLOR=#0000ff]While Not[/COLOR] oRS.EOF
    Sheets.Add
    ActiveSheet.Range("A1").CopyFromRecordset oRS, 65536
[/SIZE][SIZE=2][COLOR=#0000ff]Wend
[/COLOR]oRS.Close
oConn.Close
Application.ScreenUpdating = [/SIZE][SIZE=2][COLOR=#0000ff]True
[/COLOR][COLOR=#0000ff]End Sub[/COLOR]
[/SIZE]
Une autre solution ici
Erlandsen Data Consulting
 
Dernière édition:
Re : Decouper fichier texte

> Staple1600 : merci, c'est un bon début qui marche pas mal

> Minick : mes fichiers sont tout con : ce sont des fichiers textes avec la virgule comme séparateur : environ 1 miliard de lignes pour 13 colonnes.....
 
Re : Decouper fichier texte

Re,

Whaouuuu 1milliard, ca c'est du fichier.

Pour ton fichier, je t'aurai propose une solution similaire a celle du lien propose par Staple1600.

Donc pas mieu...

Mais 1 millard de ligne, tu dois avoir un PC gonfle aux steroids pour ouvrir un fichier pareil...


++
 
Re : Decouper fichier texte

Non je déconnes, je sais pas combien y a de lignes
Mais sinon c'est des résultat de criblage pharmacologique :
recherche sur le cancer, un fichier txt de 125 Mo ça en fait des lignes ......

Dans mon petit labo, on a une machine qui crache des fichiers excel de quelques feuilles pleines par jour ....
 
Re : Decouper fichier texte

D'ailleurs ça plante a 14 feuilles : pas assez de mémoire .............................................( 512 Mo ).Verrait ce soir à la maison (1.5Go)
 
Re : Decouper fichier texte

j'ai moi même le même genre de pb.
j'enregistre des données qui passent sur le bus can de véhicules (voiture, camion, etc). La durée de l'enregistrement est de qqes dixaines d'heures, donc le fichier texte comporte quelques millions de lignes (pas moyen d'échantilloner comme on veut).
Ma solution serait de lire le fichier texte de façon séquentielle (par exple 50 ou 100 lignes à la fois, paramétrable) et de faire la moyenne de ces lignes par colonne (nombre de colonne variable, entre 3 et 20).
La vraie galère pour moi....
Si quelqu'un à des idées et un peu de temps...
 
Re : Decouper fichier texte

bonjour à tous,

excel c'est bien, très bien même super excel rapide, mais bon, y'a quand même des limites. Ce genre de gros fichiers devrait plutot se traiter avec access ou microsoft sql.

sinon, si vous tenez à excel, le plus prudent serait d'importer ces données lignes par ligne, mais en générant une 10ne d'onglets et des fichiers séparés.

encore faudrait-il savoir quel est le but d'ouvrir ce type de fichier en entier
en vba, on peut lire une ligne, la traiter, en extraire les datas qu'on veut et uniquement écrire ces datas dans la (les) feuilles
ou alors encore completement zapper des lignes qui ne répondent pas au critère spécifié

mais bon, faut quand même un peu plus de précisions dans vos demandes pour pouvoir élaborer une solution qui tienne la route ...
 
Re : Decouper fichier texte

Pour ma part, je voudrais lire les lignes 100 par 100; faire la moyenne des colonnes et stocker cette moyenne dans une feuille excel.
L'objectif est de pourvoir tracer ensuite des courbes à partir de ces données moyennées, et de faire un peu de traitement statistique dessus.
 
Re : Decouper fichier texte

Re,

envoie un fichier de 500 lignes en format csv ou txt et on verra, mais donne qq explications supp (la moyenne de chaque colonne ou des colonnes bien précises ...)
 
Re : Decouper fichier texte

Salut,
voici un exemple de fichier (tronqué).
Il y a 19 colonnes. Ce qui m'interesse surtout, c'est de pouvoir traiter ces fichiers de grande taille en moyennant les données de chacune des colonnes.
Je pense que faire la moyenne toutes les 50 lignes serait un bon début, on affinera ensuite si besoin.

Le séparateur est un point ici, mais c'est négociable, je peux sortir les .txt avec d'autres séparateurs si nécessaire.

Merci!
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
8
Affichages
304
D
  • Question Question
Réponses
5
Affichages
249
Didierpasdoué
D
Réponses
8
Affichages
436
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…