XL 2010 Export .txt => Excel 2010

Raziel abel

XLDnaute Occasionnel
Supporter XLD
Bonjour à toutes et à tous,

Je viens vers vous avec une demande qui me parait assez compliqué mais qui pourrait être toutefois assez simple pour vous.

Je dois exporter sur un Fichier Excel un fichier Txt de 80 mégas.
L'outil export d'Excel arrive à exporter 1 048 000 lignes mais il en reste encore la moitié.
Or, vous l'avez déjà deviné, il s'arrête là.
Est-ce possible d'exporter le reste sur l'onglet suivant via l'outil Export en lui demandant de reprendre là où il s'est arrêté?

En vous remerciant,

Excelement votre,

Raziel Abel
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, le forum


@Raziel abel
VB:
Sub Import_Big_Fichier_TXT()
'code original de Anast - avril 2013
Const HelperFile As String = "tempo"
Const N As Long = 1000000  'nombre de lignes (modifiable)
Dim myPath$, myFile$, myStr$, t&, r&
Dim WB As Workbook, myWB As Workbook, myWS As Worksheet

Set myWB = ThisWorkbook
myPath = myWB.Path & "\"
myFile = "fichier.txt" 'mettre le nom du fichier réel

Application.ScreenUpdating = False

'split du gros fichier txt en plusieurs *.txt
myFile = Dir(myPath & myFile)
Open myPath & myFile For Input As #1
t = 1
r = 1
Do While Not EOF(1)
Line Input #1, myStr
If r > N Then
t = t + 1
r = 1
End If
Open myPath & HelperFile & t & ".txt" For Append As #2
Print #2, myStr
Close #2
r = r + 1
Loop
Close #1

'Copie des *.txt temporaires dans le classeur
For i = t To 1 Step -1
Workbooks.OpenText Filename:=myPath & HelperFile & i & ".txt", DataType:=xlDelimited, Tab:=True
Set WB = ActiveWorkbook
Set rng = ActiveSheet.UsedRange
Set myWS = myWB.Sheets.Add
myWS.Name = HelperFile & i
rng.Copy myWS.Cells(1, 1)
WB.Close False
Next
myWB.Save

'Effacement des fichiers *.txt temporaires
Set Fso = CreateObject("Scripting.FileSystemObject")
Set Fldr = Fso.GetFolder(myPath)
For Each Filename In Fldr.Files
If Filename Like "*" & HelperFile & "*" Then Filename.Delete
Next
Application.ScreenUpdating = True
End Sub
 
Dernière édition:

Raziel abel

XLDnaute Occasionnel
Supporter XLD
Bonjour le fil, le forum


@Raziel abel
VB:
Sub Import_Big_Fichier_TXT()
'code original de Anast - avril 2013
Const HelperFile As String = "tempo"
Const N As Long = 1000000  'nombre de lignes (modifiable)
Dim myPath$, myFile$, myStr$, t&, r&
Dim WB As Workbook, myWB As Workbook, myWS As Worksheet

Set myWB = ThisWorkbook
myPath = myWB.Path & "\"
myFile = "fichier.txt" 'mettre le nom du fichier réel

Application.ScreenUpdating = False

'split du gros fichier txt en plusieurs *.txt
myFile = Dir(myPath & myFile)
Open myPath & myFile For Input As #1
t = 1
r = 1
Do While Not EOF(1)
Line Input #1, myStr
If r > N Then
t = t + 1
r = 1
End If
Open myPath & HelperFile & t & ".txt" For Append As #2
Print #2, myStr
Close #2
r = r + 1
Loop
Close #1

'Copie des *.txt temporaires dans le classeur
For i = t To 1 Step -1
Workbooks.OpenText Filename:=myPath & HelperFile & i & ".txt", DataType:=xlDelimited, Tab:=True
Set WB = ActiveWorkbook
Set rng = ActiveSheet.UsedRange
Set myWS = myWB.Sheets.Add
myWS.Name = HelperFile & i
rng.Copy myWS.Cells(1, 1)
WB.Close False
Next
myWB.Save

'Effacement des fichiers *.txt temporaires
Set Fso = CreateObject("Scripting.FileSystemObject")
Set Fldr = Fso.GetFolder(myPath)
For Each Filename In Fldr.Files
If Filename Like "*" & HelperFile & "*" Then Filename.Delete
Next
Application.ScreenUpdating = True
End Sub

Bonjour,

Merci pour votre retour.

Je dois coller ce code dans la feuille 1?

upload_2017-11-2_9-2-15.png


Merci pour votre aide.

Cordialement

Raziel
 

Staple1600

XLDnaute Barbatruc
Re

@Raziel abel
Si j'étais moi, je collerais cela dans un module standard.
Et si j'étais vraiment moi et que je ne sache pas trop comment on utilise le VBA, j'utiliserai un moteur de recherche pour découvrir comment le faire ;)

NB: Et je lirai les commentaires en vert dans le code VBA du message#2.

PS: Il serait préférable que le gros fichier texte ne soit pas ailleurs que dans le dossier où se trouve le classeur qui contiendra la macro.
 

Raziel abel

XLDnaute Occasionnel
Supporter XLD
Re

@Raziel abel
Si j'étais moi, je collerais cela dans un module standard.
Et si j'étais vraiment moi et que je ne sache pas trop comment on utilise le VBA, j'utiliserai un moteur de recherche pour découvrir comment le faire ;)

NB: Et je lirai les commentaires en vert dans le code VBA du message#2.

PS: Il serait préférable que le gros fichier texte ne soit pas ailleurs que dans le dossier où se trouve le classeur qui contiendra la macro.

Le souci...c'est que je ne suis pas toi :( :( paiuvre de moi!!!
 

Staple1600

XLDnaute Barbatruc
Re

Si j'étais moi, je me serais apercu que c'était là un simple trait d'esprit
comme le gars Staple a l'habitude d'en faire sur le forum.

Pour savoir ce qu'est un module standard, il suffit de g..gler ou de ya.h..ser etc..
Bref de faire une tite recherche sur le net, et cela il faut juste être toi pour le faire ;)
 

Raziel abel

XLDnaute Occasionnel
Supporter XLD
Re

Si j'étais moi, je me serais apercu que c'était là un simple trait d'esprit
comme le gars Staple a l'habitude d'en faire sur le forum.

Pour savoir ce qu'est un module standard, il suffit de g..gler ou de ya.h..ser etc..
Bref de faire une tite recherche sur le net, et cela il faut juste être toi pour le faire ;)

Non non, j'ai bien trouvé comment insérer le module.
J'ai mis le code à l'intérieur et j'ai mis le nom exact du fichier.

Il ne bug pas....et c'est déja énorme.
Mais je ne sais pas comment lier cette macro pour faire en sorte qu'elle aille ouvrir le fichier txt. :)
 

Statistiques des forums

Discussions
312 192
Messages
2 086 054
Membres
103 109
dernier inscrit
boso_vs_viking