Importer un fichier d eplus de 65535 lignes

cpechu

XLDnaute Nouveau
Bonjour,

J'ai realiser une macro qui :
- importe un fichier CSV,
- recupere les lignes qui m'interessent,
- copie ces ligens dans un autre classeur,
- ferme le fichier importe.

Le probleme, c'est que le fichier source contient plus de 65535 lignes.

Comment puis-je faire pour ne rien perdre ?
- indiquer les lignes a importer,
- 'splitter' le fichier source (comment faire),
- import ligne par ligne,
Je suis ouvert a toutes les solutions.

Merci d'avance.
 

pat1545.

XLDnaute Accro
Salut,

ceci devrait aller -:))

'======================
'Importer dans un classeur un fichier texte de grande taille
'(ajoute des feuilles chaque fois que le fichier importé
'remplit 65000 lignes)


'Sören Lindqvist, mpep
Sub ImportLargefile()


'Dimension Variables
Dim ResultStr As String
Dim FileName As String
Dim FileNum As Integer
Dim Counter As Double


FileName = 'C:\\Temp\\yourfile.txt'
'If you want an inputbox use the below:
'InputBox('Write name of file and path')


If FileName = '' Then End
FileNum = FreeFile()
Open FileName For Input As #FileNum
Application.ScreenUpdating = False


Workbooks.Add template:=xlWorksheet


Counter = 1


Do While Seek(FileNum) <= LOF(FileNum)


Application.StatusBar = 'Importerar Rad ' & _
Counter & ' Från TextFil ' & FileName
Line Input #FileNum, ResultStr
If Left(ResultStr, 1) = '=' Then
ActiveCell.Value = ''' & ResultStr
Else
ActiveCell.Value = ResultStr
End If


If ActiveCell.Row = 65500 Then
' I'll need some space below
'If file is larger than (65500.st)
ActiveWorkbook.Sheets.Add
Else
ActiveCell.Offset(1, 0).Select
End If
Counter = Counter + 1


Loop
Close
Application.StatusBar = False


End Sub
'======================
===== fin de copie =====
 
C

cpechu

Guest
Merci,

Ca fonctionne.
Par contre, l'appel a la procedure 'line' est tres lllooonnnggg.

C'est a priori car le fichier provient d'unix.
J'ai fait l'essai avec un fichier 3 lignes, et le contenu du fichier est dans une seule cellule !!!

Je n'ai rien trouve dans l'aide sur 'line input' concernant la gestion des CR, CR+LF.

Une idee ?

Encore merci
 
C

cpechu

Guest
Salut,

Finalement, je n'arrive a rien d'efficace.
J'ai donc pris le probleme a l'envers, ca marche beaucoup mieux.

Je separe mes fichiers en 65535 lignes sous unix, et ensuite j'importe tout simplement.

Moins joli que ce que j'aurais voulu faire , mais ca marche.

Merci
 

Discussions similaires

Réponses
2
Affichages
565
Réponses
10
Affichages
318

Statistiques des forums

Discussions
312 271
Messages
2 086 688
Membres
103 372
dernier inscrit
BibiCh