limite de 65000 ligne

S

sylvain

Guest
Bonjour,

Voici mon petit souci.
En fait je ne pense pas qu'excel puisse réaliser ce dont j'ai besoin mais si qql un peut m'aider cela serait super kool

Je doit rendre un audit de fichier mais les plus petits répertoires comportent quand même plus de 65000 fichiers .

Donc avec n'importe quel logiciel (treesize, size explorer ..) pas de probleme ils me sortent à l'écran le résultat mais dés que l'on veut exporter ce résultat dans excel et bein boum excel n'en récupère que 65000 et bien sur pas les plus importants.


Voila si qql connait une bonne astuce (pas de csv le client s'arracherait les cheveux) merci de m'éclairer avec :)

J'ai même penser avec un csv et une boucle for à créer antant de fichier csv qu'il y a de Nbr de fichier diviser par 65000 mais j'avous trop baleze pour moi.

Si par hasard passait par la un bonne admin qui a déja eue le probleme peut m'aider ou me donner le nom d'un logiciel capable de faire ça milles merci sur ce a plus et encore merci

Sylvain
 
O

olive

Guest
Sinon, ma facon de faire avant, etait d'ouvrir le fichier txt dans wordpad (il respect les tabs) et je selectionnais env. 30000 lignes a chaque fois pour coller dans excel pour faire le tri des donnees a supprimer dans ces fichiers. Ce qui a la fin me faisait un fichier avec env.25000 lignes. C'etait long a faire... Ce que j'aimerais c'est que excel arrive a ouvrir le fichier, en plusieur feuilles s'il le faut... Voila ! :p
 

Hellboy

XLDnaute Accro
Bonsoir olive

Voici, c'est pas hyper rapide, mais ça fait le travail ! B)

Excuse moi, mais je manque temps pour te donner des explication, mais si tu en a de besoin, au courrant du we je repasserai.

Ah! oui, soit patient, ça prend environ 2 minutes pour faire le traitement de ton fichier. Et si tu as plus de un fichier a faire, tu peux tous les sélectionner en même temps.


Option Explicit

Public Sub Auto_open()
   
Dim szFile                As String, szLine            As String, tabl()            As String
   
Dim iFileNo            As Integer, iSheet            As Integer
   
Dim iLines                As Long
   
Dim vrtFiles            As Variant, fileToOpen    As Variant
   
   
    vrtFiles = Application.GetOpenFilename('*.*, *.*', , 'Fichier de Plus de 60000 Lignes', ,
True)
   
For Each fileToOpen In vrtFiles
            Application.ScreenUpdating =
False
            Workbooks.Add
            iFileNo = FreeFile
           
Open fileToOpen For Input As #iFileNo
            iLines = 1
           
While Not EOF(iFileNo)
                        Line
Input #iFileNo, szLine
                        szLine = Replace(szLine, Chr(32), '')
                        tabl() = Split(szLine, Chr(9))
                       
If iLines > 65500 Then
                            iSheet = iSheet + 1
                            Sheets.Add after:=Sheets(iSheet)
                            iLines = 1
                       
End If
                        Range(Cells(iLines, 1), Cells(iLines, 25)) = tabl()
                        iLines = iLines + 1
                Wend
               
Close #iFileNo
                Sheets(1).Select
                Application.ScreenUpdating =
True
   
Next fileToOpen
   
End Sub
 
O

olive

Guest
merci beaucoup pour ton temps passé sur mon probleme !!!
Malheureusement, je suis neophite d'excel, a part les bases, je ne connait rien ! :eek:
Qu'est ce que je fais de toutes ces lignes ? c'est une macro ? (a pars le nom, je ne connais rien !) du vba (idem :side:). t'inquiete phil, ce n'est pas urgent, mais ca me fera gagner un paquet de temps les prochaine fois que j'aurais a faire ce boulot. Donc j'ai le temps de comprendre et d'apprendre !
Et encore une fois merci beaucoup !!!!!! :woohoo:
 
O

olive

Guest
merci hellboy,
Quand j'ouvre le fichier texte avec ton soft, sous excel 2003, apres 2 mn, j'ai une boite de dialogue 'erreur d'execution '1004'' avec un message : 'La methode Select de la classe Worksheet a echoué'.
Si je clic sur le bouton debogage, j'obtient ca :



Private Sub Workbook_Open()
Dim szFile As String, szLine As String, tabl() As String
Dim iFileNo As Integer, iSheet As Integer
Dim iLines As Long
Dim vrtFiles As Variant, fileToOpen As Variant


vrtFiles = Application.GetOpenFilename('*.*, *.*', , 'Fichier de Plus de 60000 Lignes', , True)
For Each fileToOpen In vrtFiles
Application.ScreenUpdating = False
Workbooks.Add
iFileNo = FreeFile
Open fileToOpen For Input As #iFileNo
iLines = 1
While Not EOF(iFileNo)
Line Input #iFileNo, szLine
szLine = Replace(szLine, Chr(32), '')
tabl() = Split(szLine, Chr(9))
If iLines > 65500 Then
iSheet = iSheet + 1
Sheets.Add after:=Sheets(iSheet)
iLines = 1
End If
Range(Cells(iLines, 1), Cells(iLines, 25)) = tabl()
iLines = iLines + 1
Wend
Close #iFileNo
Sheets(1).Select
Application.ScreenUpdating = True
Next fileToOpen

End Sub

La ligne Sheets(1).Select en mise en jaune

C'est grave doc ?? :unsure:
 

Statistiques des forums

Discussions
312 480
Messages
2 088 756
Membres
103 947
dernier inscrit
Quentin_sf