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

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,

Merci pour votre retour.

Je dois coller ce code dans la feuille 1?



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

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

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.
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…