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

Feuille de 200.000 lignes

  • Initiateur de la discussion Lionel
  • Date de début
L

Lionel

Guest
Bonjour,


Je cherche à importer dans une feuille excel un fichier de 200.000 lignes. Je sais que la limite d'excel est d'environ 65.000 lignes mais comme je n'utilise par ligne que 20 colonnes, y-a-til une astuce pour bypasser cette limite de 65000 (sachant que 65.000 * 100 > 200.000 * 20).

Merci d'avance.

Lionel
 
V

vincent

Guest
salut

je ne suis pas sur que l'on puisse tricher sous excel pour ouvrir ton fichier par contre si tu peux couper ton fichier en 4 ensuite tu peux faire une macro pour ouvrir tes 4 fichiers et mettre les données ou tu veux sous excel.

j'espere que cela pourra t'aider ou que quelqu'un a une meilleur solution.
 
M

Moa

Guest
Salut Vincent et le forum !

Une idée toute simple peut-être à développer, serait de faire une macro qui se lancerait à l'ouverture de ce fichier spécifique et qui dirait à Excel de passer à la colonne suivante, dès qu'il arriverait à la dernière ligne.

Messieurs les pros du Vba....à méditer....!!

En ce qui concerne ton cas Lionel, voilà comment je procède.

J'ouvre le fichier avec le bloc note ou un autre éditeur de texte.

Puis je le coupe en autant de fichier que nécessaire.

Et voilà le tour est joué.

@ +

Moa
 
H

hurricane

Guest
salut

je suppose que ton fichier est un *.TXT

quand tu arrives au bout de la colonne a tu passe a B

Sub Lire_fichier_txt()
On Error Resume Next

ligne = 1: colonne = 1
Cells(ligne, colonne).Activate
'Lecture des données contenues dans un fichier texte
Open "D:\Documents and Settings\toto.txt" For Input As #1
Do While Not EOF(1) ' Loop until end of file.
Line Input #1, textline
If Len(textline) < 5 Then GoTo Saut
Do Until Asc(Right(textline, 1)) <> 9
textline = Mid(textline, 1, Len(textline) - 1)
Loop
textline = textline + Chr(9) + Chr(9)
'Extraire la chaine de caractères
nbre = 1: compte = 0
longueur = Len(textline)
For i = nbre To Len(textline) - 1
If Asc(Mid(textline, i, 1)) <> 9 Then
compte = compte + 1
Else
Cells(ligne, colonne) = CDbl(Mid(textline, nbre, compte))
Cells(ligne, colonne).NumberFormat = "general"
ligne = ligne + 1
nbre = nbre + compte + 1
compte = 0
If ligne > 65534 Then
colonne = colonne + 1
ligne = 1
End If
End If
Next i
Saut:
Loop
Close #1
End Sub

j'ai eu le meme probleme il y a quelques mois et c'est myta qui a trouvé la solution

merci myta

@++
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…