IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Récupération 1 seule colonne d'un fichier texte [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 338
    Par défaut Récupération 1 seule colonne d'un fichier texte
    Bonjour,

    Je dispose de plusieurs fichiers texte (en réalité dpt mais c'est équivalent) que
    je souhaite récupérer dans un fichier excel; Voici le code que j'ai et qui fonctionne à merveille (Merci Developpez.com !):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Sub Import()
    Dim Fso As Object
    Dim FsoRepertoire As Object
    Dim FsoFichier As Object
    Dim i As Long
    Dim c As Integer
    Dim strLigne As String
     
    Dim str() As String
     
    Set Fso = CreateObject("Scripting.FileSystemObject")
    Set FsoRepertoire = Fso.GetFolder(Sheets("Macro").Range("E9").Value) 'nom du répertoire
     
     
     
    'Boucle sur fichiers du repertoire
    c = 2
    For Each FsoFichier In FsoRepertoire.Files
        i = 1
        'Vérifie si le fichier a l'extension souhaité
        str = Split(FsoFichier.Name, ".")
        If str(UBound(str)) = "dpt" Then
            'ouvre le fichier
            Open FsoFichier.Path For Input As #1
            'Boucle sur chaque ligne du fichier
            Do While Not EOF(1)
                Line Input #1, strLigne
                'insere la ligne dans la cellule
                Sheets("Données brutes").Cells(i, c).Value = strLigne
                i = i + 1
            Loop
            Close #1
            c = c + 1
        End If
     
    Next
     
    Call Copie
     
     
     
    End Sub
    Cependant il me faut adapter ce code afin de ne sélectionner que la deuxième colonne de mes fichiers texte (la première étant identique à chaque fichier) !

    Auriez vous une solution à me proposer ?


    Bonne journée

    Vincent

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    En considérant que le séparateur de colonne est le ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            Do While Not EOF(1)
                Line Input #1, strLigne
                str=split(StrLigne,";")
                'insere la ligne dans la cellule
                Sheets("Données brutes").Cells(i, c).Value = str(1)
                i = i + 1
            Loop

  3. #3
    Membre Expert Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Par défaut
    Bonjour
    On peut aussi faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     Do While Not EOF(1)
                Line Input #1, StrLigne
                'insere la ligne dans la cellule
                Sheets("Données brutes").Cells(i, C).Value = Split(StrLigne, ";")(1)
                i = i + 1
            Loop
     
     
    '(1) Pour la seconde colonne du fichier texte
    '(0) Pour la Première colonne du fichier texte

    Bon courage

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 338
    Par défaut
    Merci beaucoup pour cette solution, en admettant que le séparateur soit un espace type tabulation et que je veuille récupérer la seconde colonne quels sont les modifs à apporter au code

  5. #5
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    pour la tabulation remplacer ";" par Chr(9)

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 338
    Par défaut
    Merci beaucoup pour ces solutions qui fonctionnent à merveille

    Cordialement,

    Vincent

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/03/2008, 19h15
  2. récupération de données à partir d'un fichier texte
    Par ludol59 dans le forum Bibliothèque standard
    Réponses: 9
    Dernier message: 23/01/2008, 22h04
  3. Séparateur de colonnes dans un fichier texte
    Par robert323 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/01/2008, 13h02
  4. Remlacer une colonne d'un fichier texte
    Par NeqO55 dans le forum Linux
    Réponses: 7
    Dernier message: 06/09/2007, 21h16
  5. Comment lire une seul ligne d'un fichier texte?
    Par Julien1987 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 18/01/2007, 14h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo