Ouverture fichier 65535 Lignes

  • Initiateur de la discussion Initiateur de la discussion niko
  • 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 !

N

niko

Guest
Bonjour a tous,

Une question qui vous a surement ete deja pose, je vous demande de m'excuser et de me rediriger eventuellement vers le post approprie:

On me demande de modifier une macro ouvrant une serie de fichiers dont certains peuvent etre tres gros.

Connaissant de reputation la limite de 65535 lignes d'excel, je me demande si l'erreur de ne vient pas de la. (L'erreur en question consistant a un plantage en toute beaute d'Excel)

De plus, les gens qui utilisent cette macro ont l'habitude de tronquer les fichiers a la main a chaque fois pour la faire fonctionner (C'est cette operation qu'ils ne veulent plus avoir a effectuer).

La macro ouvre le fichier via "Workbooks.OpenText" et une serie de parametres evidement. Je n'ai rien trouve ici http://msdn.microsoft.com/library/default.asp?url=/library/en-us/off2000/html/xlmthOpenText.asp qui puisse me permettre de limiter le nombre de lignes ouvertes.

Je n'ai pas trouve non plus de doc relative a l'ouverture/ecriture de fichiers via VB.


Merci beaucoup,
Nico
 
Bonjour Niko, le forum

En solution à ton problème, tu peux ouvrir ton fichier en mode de lecture séquentielle (tu ne seras pas limité en nombre de lignes) pour le diviser en plusieurs fichiers txt de 65536 lignes max avant l'ouverture avec opentext.
Open nomfichier.txt For Input As #1
tu trouveras des exemples dans l'aide sur open (l'instruction pas la méthode)
un exemple sur ce fil
<http://www.excel-downloads.com/html/French/forum/read.php?f=1&i=104116&t=104070>

Cordialement, A+
 
Je me permet de poster a nouveau ici:

En fait, il me reste un petit probleme.

Lorsque je parcours chaque ligne de texte, Excel n'en prend qu'une en compte, mais qui contient l'ensemble du fichier.

J'ai l'impression que le caractere de terminaison de ligne (C'est un fichier UNIX), ne lui plait pas...

Une idee?
Je n'arrive pas a trouver un moyen de le specifier a l'"open" ou au "Line Input" le type de fichier


Merci bcp,
Nico
 
Re bonjour

sans le fichier, ça va être dur.
c'est plutôt à mon avis un problème de lecture certainement du à la syntaxe que tu as utilisée.

l'exemple ci dessous t'écrira le fichier txt dans le classeur actif en partant de la feuille 1 et en décalant d'une feuille toutes les 65536 lignes.
Aprés, tu pourras appliquer un texttocolumns avec la même syntaxe qu'opentext.

Cordialement, A+


Sub essai()
Dim Val_Ligne As String
Dim Compteur As Long, Compteur2 As Integer
On Error GoTo Ferme
Open "d:\copy\test.txt" For Input As #1
Compteur = 0
Compteur2 = 1
Do While Not EOF(1)
Line Input #1, Val_Ligne
Sheets(Compteur2).Range("A1").Offset(Compteur, 0).Value = Val_Ligne
Compteur = Compteur + 1
If Compteur = 65536 Then Compteur = 0: Compteur2 = Compteur2 + 1
Loop
Ferme:
Close #1
End Sub
 
Merci beaucoup pour ton aide, voici comment j'ai finalement procede:

J'ai fait en sorte d'intercepter l'erreur sur le trop gros nombre de ligne de opentext, de sorte:

1. De ne pas avoir de message d'erreur
2. De ne pas sortir de ma fonction

Ainsi, le reste de la fonction s'execute normalement.


Tout de meme, je suis etonne que opentext fonctionne tres bien avec les formats UNIX alors que le open sequentiel ne permet pas de parametrer les caracteres de fin de ligne et/ou le type de fichier.

Merci encore,
Nico
 
- 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
867
Retour