Importer un fichier d eplus de 65535 lignes

  • Initiateur de la discussion Initiateur de la discussion cpechu
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

cpechu

Guest
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.
 
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 =====
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour