Importer fichier texte

Résolu
mizou00 Messages postés 36 Date d'inscription   Statut Membre Dernière intervention   -  
Mytå Messages postés 2973 Date d'inscription   Statut Contributeur Dernière intervention   -
bonsoir

je voudrais importer un long fichier texte avec 1000 colonnes environ,
je veux qu'il soit réparti sur plusieurs feuilles !
j'ai le code suivant mais ca ne marche pas

Sub Fichier_TXT_Volumineux()
Dim Resultat, Chemin As String
Dim Lecture As Integer
Dim Compteur As Variant
Chemin = Application.GetOpenFilename
If Chemin = "" Then End
Lecture = FreeFile()
Open Chemin For Input As #Lecture
Application.ScreenUpdating = False
Compteur = 1
Do While Seek(Lecture) <= LOF(Lecture)
Line Input #Lecture, Resultat
ActiveCell.Value = Resultat
If ActiveCell.Row = 65536 Or ActiveCell.Column = 256 Then
ActiveWorkbook.Sheets.Add
Else
ActiveCell.Offset(1, 0).Select
End If
Compteur = Compteur + 1
Loop
Close
Application.ScreenUpdating = True
End Sub
A voir également:

20 réponses

Mytå Messages postés 2973 Date d'inscription   Statut Contributeur Dernière intervention   953
 
Salut le forum

Sans savoir ce qui ne marche pas

Essaye de remplacer : Do While Seek(Lecture) <= LOF(Lecture)
Par : Do While Not EOF(Lecture)

Mytå
0
mizou00 Messages postés 36 Date d'inscription   Statut Membre Dernière intervention  
 
Non parreil
il affiche le contenu jusqu'à la 256ème colonne
0
Mytå Messages postés 2973 Date d'inscription   Statut Contributeur Dernière intervention   953
 
Re le forum

Ton extraction va mettre une ligne par ligne, je ne vois pas le rapport avec 256 colonnes surtout que ton titre parle de 1000 colonnes !

De plus tu incrémentes seulement la ligne Offset(rowOffset,columnOffset)

Mytå
Merci de donner suite à votre question, nous ne sommes pas des robots...
Versions installées [MsProject 2003(FR), Excel 2003-2007(FR)]
0
mizou00 Messages postés 36 Date d'inscription   Statut Membre Dernière intervention  
 
oui je suis débutant , qu'est ce tu peux me proposer alors ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mytå Messages postés 2973 Date d'inscription   Statut Contributeur Dernière intervention   953
 
Re le forum

Mizoum que contient comme valeurs ton fichier texte.

Un exemple d'une dizaine de lignes devrait suffire.

Mytå
0
mizou00 Messages postés 36 Date d'inscription   Statut Membre Dernière intervention  
 
je n'ai mis qu'une seule ligne et tous les colonnes j'ai pa pu mettes les valeurs
j'ai à peu près 700 lignes et 1031 colonnes
voila le lien
http://cjoint.com/?ikebklMyRy</code>



merci a toi
0
Mytå Messages postés 2973 Date d'inscription   Statut Contributeur Dernière intervention   953
 
Re le forum

Mizou, une macro pour sur la base de ton fichier

Extraction de la ligne sur plusieurs lignes

Sub Fichier_TXT_Volumineux()
Dim Resultat As String
Dim Chemin As String
Dim Lecture As Integer
Dim Tableau() As String
Dim i As Integer

Chemin = Application.GetOpenFilename
    If Chemin = "" Then End
    
Lecture = FreeFile()
    Open Chemin For Input As #Lecture

Cells.Delete
Cells(1, 1).Select

Do While Not EOF(Lecture)
    Line Input #Lecture, Resultat

    If InStr(Resultat, "|") <> 0 Then
        Tableau = Split(Resultat, "|")
            For i = 0 To UBound(Tableau)
                ActiveCell = Tableau(i)
                ActiveCell.Offset(1, 0).Select
            Next i
    Else
        ActiveCell.Value = Resultat
    End If
    
  ActiveCell.Offset(1, 0).Select
  
Loop

End Sub

Mytå
0
mizou00 Messages postés 36 Date d'inscription   Statut Membre Dernière intervention  
 
je pense ke ca ne marche pas en tout ce n'est pas ce que je cherche à avoir
je l'ai testé il me liste tous le contenu du fichier dans la 1ere colonne.

J'ai besoin qu'il maffche les 256 premier colonnes dans feuille1 les second 256 colonne dans feuille2 ainsi de suite !

Merci beaucoup Myta
0
mizou00 Messages postés 36 Date d'inscription   Statut Membre Dernière intervention  
 
oui mais c'est le test sur les colonnes qui m'interesse :)
0
Mytå Messages postés 2973 Date d'inscription   Statut Contributeur Dernière intervention   953
 
Re le forum

Mizou, un fichier excel avec 5 feuilles (Feuil1 à Feuil5)

Une macro pas optimisée mais fonctionelle
Sub Fichier_TXT_Volumineux()
Dim Resultat As String
Dim Chemin As String
Dim Lecture As Integer
Dim Tableau() As String
Dim i As Integer
Dim Lig As Long
Dim Col As Integer
Dim Sh As Byte

Chemin = Application.GetOpenFilename
    If Chemin = "" Then End
    
Lecture = FreeFile()
    Open Chemin For Input As #Lecture

Lig = 1: Col = 1: Sh = 1

Application.ScreenUpdating = False

Do While Not EOF(Lecture)
    Line Input #Lecture, Resultat
Lig = Lig + 1: Col = 1: Sh = 1
    If InStr(Resultat, "|") <> 0 Then
        Tableau = Split(Resultat, "|")
            For i = 0 To UBound(Tableau)
                Sheets("Feuil" & Sh).Cells(Lig, Col) = Tableau(i)
                Col = Col + 1
                If Col = 257 Then
                Col = 1: Sh = Sh + 1
                End If
            Next i
    Else
        Sheets("Feuil" & Sh).Cells(Lig, Col) = Resultat
            Col = Col + 1
            If Col = 256 Then
            Col = 1: Sh = Sh + 1
            End If
    End If
  
Loop

Application.ScreenUpdating = True

End Sub

Mytå
0
mizou00 Messages postés 36 Date d'inscription   Statut Membre Dernière intervention  
 
merci beaucoup mais je pense ke ca ne marche pas
je l'ai testé mail il maffiche ke "l'indice n'appartient pas à la selection" :(
0
mizou00 Messages postés 36 Date d'inscription   Statut Membre Dernière intervention  
 
et après débogage g cette ligne en jaune


Sheets("Feuil" & Sh).Cells(Lig, Col) = Tableau(i)
0
Mytå Messages postés 2973 Date d'inscription   Statut Contributeur Dernière intervention   953
 
Re le forum

Mizou, tu dois avoir déjà 5 feuilles dans ton classeur

Un fichier excel avec 5 feuilles (Feuil1 à Feuil5)

C'est une macro pas optimisée mais fonctionelle

Mytå
Merci de donner suite à votre question, nous ne sommes pas des robots...
Versions installées [MsProject 2003(FR), Excel 2003-2007(FR)]
0
mizou00 Messages postés 36 Date d'inscription   Statut Membre Dernière intervention  
 
oui ca marche :):):) merci merci beaucoup vous êtes super super sympa !!!

et si je devais ouvrir ces 5 feuilles dans un autre classeur (pas celui de là ou s'exécute la macro) et récupère ces 5 feuilles dans mon classeur (là ou s'exécute la macro) en les renommant par exemple feuille1=données(1) , feuille2=données(2) ainsi de suite
c possible ?

je vous remercie encore une fois et dsl pour le dérangement :)
0
Mytå Messages postés 2973 Date d'inscription   Statut Contributeur Dernière intervention   953
 
Re le forum

Pourquoi ne pas faire l'extraction directement dans ton vrai fichier

Modifie les lignes :
Sheets("Feuill" & Sh).Cells(Lig, Col)
par
Sheets("Données(" & Sh & ")").Cells(Lig, Col)
Ton classeur doit contenir les feuilles (Données(1) à Données(5))

Mytå
0
mizou00 Messages postés 36 Date d'inscription   Statut Membre Dernière intervention  
 
oui voila vous avez résolu mon probleme je vous en suis très reconnaissant merci beaucoup !
je vais continuer l'application et si çà coince je me tourneré vers vous :)


Merci Beaucoup
0
Mytå Messages postés 2973 Date d'inscription   Statut Contributeur Dernière intervention   953
 
Re le forum

Au plaisir Mizou, merci de mettre ton message en [Résolu]

Je vais regarder entre-temps pour améliorer mon code (Optimisation)

Mytå
0
mizou00 Messages postés 36 Date d'inscription   Statut Membre Dernière intervention  
 
g un autre petit problème !!
je dois afficher une liste deroulante avec GSM et WCDMA donc 2 lignes

en dessous, en fonction du choix, il doit apparaitre des cases d'options
comme ceci :
------------------------------
GSM / WCDMA (sur 2 lignes)
------------------------------

O O
O O
O O
O O
O O
O O
O O

Les cases d'option de gauche ne doivent apparaitre que si on choisit GSM
Pareil pour WCDMA


Merci pour votre aide
0
Mytå Messages postés 2973 Date d'inscription   Statut Contributeur Dernière intervention   953
 
Re le forum

Mizou, je ne comprends pas trop ta demande.

Pourrais-tu détailler un peu plus ou joindre une version épurée du fichier ?

A te relire
Mytå
0
cousinhub29 Messages postés 1074 Date d'inscription   Statut Membre Dernière intervention   361
 
Bonjour,

Il me semblait, qu'avant d'affirmer, on vérifiait.....

Il me semblait que la limite etait de 65255 (ou 65256)


Clique sur F1

Tape "limites".....

Taille des feuilles de calcul 65 536 lignes et 256 colonnes 


Sous Excel2003, bien sûr

Bonne journée
0
Mytå Messages postés 2973 Date d'inscription   Statut Contributeur Dernière intervention   953
 
Re le forum

Et pour Excel 2007

Taille des feuilles de calcul 1 048 576 lignes et 16 384 colonnes

Mytå
0
contrariness Messages postés 21229 Date d'inscription   Statut Membre Dernière intervention   6 183
 
Es-tu sur de la valeur ?
If ActiveCell.Row = 65536 Or ActiveCell.Column = 256 Then

Il me semblait que la limite etait de 65255 (ou 65256)
-1