Menu

Importer fichier texte [Résolu/Fermé]

Messages postés
36
Date d'inscription
samedi 29 mai 2010
Statut
Membre
Dernière intervention
19 avril 2011
- - Dernière réponse : Mytå
Messages postés
2995
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
- 11 août 2010 à 22:34
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
Afficher la suite 

20 réponses

Messages postés
2995
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
682
0
Merci
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å
Messages postés
36
Date d'inscription
samedi 29 mai 2010
Statut
Membre
Dernière intervention
19 avril 2011
0
Merci
Non parreil
il affiche le contenu jusqu'à la 256ème colonne
Messages postés
2995
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
682
0
Merci
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)]
Messages postés
36
Date d'inscription
samedi 29 mai 2010
Statut
Membre
Dernière intervention
19 avril 2011
0
Merci
oui je suis débutant , qu'est ce tu peux me proposer alors ?
Messages postés
2995
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
682
0
Merci
Re le forum

Mizoum que contient comme valeurs ton fichier texte.

Un exemple d'une dizaine de lignes devrait suffire.

Mytå
Messages postés
36
Date d'inscription
samedi 29 mai 2010
Statut
Membre
Dernière intervention
19 avril 2011
0
Merci
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
Messages postés
2995
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
682
0
Merci
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å
Messages postés
36
Date d'inscription
samedi 29 mai 2010
Statut
Membre
Dernière intervention
19 avril 2011
0
Merci
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
Messages postés
36
Date d'inscription
samedi 29 mai 2010
Statut
Membre
Dernière intervention
19 avril 2011
0
Merci
oui mais c'est le test sur les colonnes qui m'interesse :)
Messages postés
2995
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
682
0
Merci
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å
Messages postés
36
Date d'inscription
samedi 29 mai 2010
Statut
Membre
Dernière intervention
19 avril 2011
0
Merci
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" :(
Messages postés
36
Date d'inscription
samedi 29 mai 2010
Statut
Membre
Dernière intervention
19 avril 2011
0
Merci
et après débogage g cette ligne en jaune


Sheets("Feuil" & Sh).Cells(Lig, Col) = Tableau(i)
Messages postés
2995
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
682
0
Merci
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)]
Messages postés
36
Date d'inscription
samedi 29 mai 2010
Statut
Membre
Dernière intervention
19 avril 2011
0
Merci
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 :)
Messages postés
2995
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
682
0
Merci
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å
Messages postés
36
Date d'inscription
samedi 29 mai 2010
Statut
Membre
Dernière intervention
19 avril 2011
0
Merci
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
Mytå
Messages postés
2995
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
682 -
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å
Messages postés
36
Date d'inscription
samedi 29 mai 2010
Statut
Membre
Dernière intervention
19 avril 2011
0
Merci
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
Mytå
Messages postés
2995
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
682 -
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å
Messages postés
587
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
11 novembre 2018
247
0
Merci
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
Messages postés
2995
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
682
0
Merci
Re le forum

Et pour Excel 2007

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

Mytå
Messages postés
13572
Date d'inscription
samedi 10 juillet 2010
Statut
Membre
Dernière intervention
24 mai 2019
2670
-1
Merci
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)