![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| Excel Forum d'entraide sur Excel |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Nouveau membre du Club
![]() Date d'inscription: juin 2003
Messages: 63
|
Bonjour,
J'aimerai importer un fichier CSV comportant plus de 65000 lignes. J'aimerai faire en sorte que seules les premières 65000 premères lignes s'enregistrent dans un premier fichier, et qu'un autre fichier se charge des 65000 autres lignes suivantes. Cela est-il gérable via Excel ou faut-il développer une macro ? Merci d'avance pour toute réponse. |
|
|
|
|
|
#2 (permalink) |
![]() Date d'inscription: août 2005
Messages: 3 157
|
bonsoir
Tu peux tester cette procédure qui utilise la bibliothèque ADO. Il est possible de paramétrer le nombre de lignes importées par feuille Code :
Sub Test() Extraction "C:\dossier\nomfichier.csv", 65536, ";" End Sub Sub Extraction(Fichier As String, _ NbLignesParFeuille As Long, _ Separateur As Variant) Dim Wb As Workbook Dim Counter As Double Dim Tableau() As String Dim i As Integer Dim ContenuLigne As String Application.ScreenUpdating = False Counter = 1 Set Wb = Workbooks.Add(1) 'Ouverture du fichier txt Open Fichier For Input As #1 Do While Not EOF(1) If Counter > NbLignesParFeuille Then Wb.Worksheets.Add Counter = 1 End If Line Input #1, ContenuLigne 'découpe la chaine en fonction des virgules 'le résultat de la fonction Split est stocké dans un tableau Tableau = Split(ContenuLigne, Separateur) 'boucle sur le tableau pour extraire les données For i = 0 To UBound(Tableau) ActiveSheet.Cells(Counter, i + 1) = Tableau(i) Next i Counter = Counter + 1 Loop Close #1 Application.ScreenUpdating = True MsgBox "Opération terminée" End Sub bon week end michel |
|
|
|
|
![]() |
![]() |
||
[Format CSV] Import Excel
|
||
| Outils de la discussion | |
|
|