Importer fichier texte

Résolu
mizou00 Messages postés 44 Statut Membre -  
Mytå Messages postés 4246 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

20 réponses

  1. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   958
     
    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
  2. mizou00 Messages postés 44 Statut Membre
     
    Non parreil
    il affiche le contenu jusqu'à la 256ème colonne
    0
  3. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   958
     
    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
  4. mizou00 Messages postés 44 Statut Membre
     
    oui je suis débutant , qu'est ce tu peux me proposer alors ?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   958
     
    Re le forum

    Mizoum que contient comme valeurs ton fichier texte.

    Un exemple d'une dizaine de lignes devrait suffire.

    Mytå
    0
  7. mizou00 Messages postés 44 Statut Membre
     
    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
  8. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   958
     
    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
  9. mizou00 Messages postés 44 Statut Membre
     
    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
  10. mizou00 Messages postés 44 Statut Membre
     
    oui mais c'est le test sur les colonnes qui m'interesse :)
    0
  11. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   958
     
    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
  12. mizou00 Messages postés 44 Statut Membre
     
    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
  13. mizou00 Messages postés 44 Statut Membre
     
    et après débogage g cette ligne en jaune

    Sheets("Feuil" & Sh).Cells(Lig, Col) = Tableau(i)
    0
  14. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   958
     
    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
  15. mizou00 Messages postés 44 Statut Membre
     
    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
  16. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   958
     
    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
  17. mizou00 Messages postés 44 Statut Membre
     
    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
    1. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   958
       
      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
  18. mizou00 Messages postés 44 Statut Membre
     
    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
    1. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   958
       
      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
  19. cousinhub29 Messages postés 1114 Date d'inscription   Statut Membre Dernière intervention   380
     
    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
  20. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   958
     
    Re le forum

    Et pour Excel 2007

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

    Mytå
    0
  21. contrariness Messages postés 343 Date d'inscription   Statut Membre Dernière intervention   6 243
     
    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