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 :

lire un fichier texte


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 30
    Points : 34
    Points
    34
    Par défaut lire un fichier texte
    bonjour
    j'aimerai lire un fichier texte ensuite pouvoir extraire les données .
    mon fichier texte est sous cette forme:
    1 OPEN
    2 SEA
    3 INLAND WATER
    4 MEAN INDIVIDUAL
    5 MEAN COLLECTIVE
    6 DENSE COLLECTIVE
    7 SKYCRAPERS
    j'aimerai faire une comparaison avec d'autre données (sous fichier excel) le but c de pouvoir faire correspondre chaque numero avec le nom.

  2. #2
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, voir sur http://excel.developpez.com/faq/?page=ChapFichiersTxt
    http://www.developpez.net/forums/d45...xt-separateur/
    En l'absence de plus d'infos , par défaut l'import direct comme fichier texte tabulé si le séparateur chiffre/texte est une tabulation, sinon de façon plus verbeuse
    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
     
    Option Explicit
     
    Sub LectureTXT()
    Dim Fichier As Variant
        ChDir ThisWorkbook.Path
        Fichier = Application.GetOpenFilename("Fichier TXT (*.txt), *.txt")
        If Fichier <> False Then Lire Fichier
    End Sub
     
    Private Sub Lire(ByVal NomFichier As String)
    Dim sChaine As String
    Dim Ar() As String
    Dim i As Long
    Dim iRow As Long, iCol As Long
    Dim NumFichier As Integer
    Const Separateur As String * 1 = vbTab
     
        ShTst.Cells.Clear
        Application.ScreenUpdating = False
     
        Close
        NumFichier = FreeFile
     
        iRow = 0
        Open NomFichier For Input As #NumFichier
            Do While Not EOF(NumFichier)
                iCol = 1: iRow = iRow + 1
                Line Input #NumFichier, sChaine
                Ar = Split(sChaine, Separateur)
                For i = LBound(Ar) To UBound(Ar)
                    ShTst.Cells(iRow, iCol) = Ar(i)
                    iCol = iCol + 1
                Next i
            Loop
        Close #NumFichier
     
        Application.ScreenUpdating = True
    End Sub
    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
     
    Option Explicit
     
    Sub LectureTxtFso()
    Dim Fichier As Variant
        ChDir ThisWorkbook.Path
        Fichier = Application.GetOpenFilename("Fichier TXT (*.txt), *.txt")
        If Fichier <> False Then LireFSO Fichier
    End Sub
     
    Private Sub LireFSO(ByVal NomFichier As String)
    Dim s As String
    Dim FSO As Object
    Dim Fichier As Object
    Dim iRow As Long, iCol As Long
    Dim Ar() As String
    Dim i As Long
    Const Separateur As String * 1 = vbTab
     
        ShTst.Cells.Clear
        Application.ScreenUpdating = False
     
        Set FSO = CreateObject("Scripting.FileSystemObject")
        Set Fichier = FSO.GetFile(NomFichier).OpenAsTextStream
     
        iRow = 0
        Do While Not Fichier.AtEndOfStream
            iCol = 1: iRow = iRow + 1
            s = Fichier.ReadLine
            Ar = Split(s, Separateur)
            For i = LBound(Ar) To UBound(Ar)
                ShTst.Cells(iRow, iCol) = Ar(i)
                iCol = iCol + 1
            Next i
        Loop
        Fichier.Close
     
        Set Fichier = Nothing
        Set FSO = Nothing
     
        Application.ScreenUpdating = True
    End Sub
    si par contre il s'agit d'un espace
    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
    43
    44
     
    Option Explicit
     
    Sub LectureTxt()
    Dim Fichier As Variant
        ChDir ThisWorkbook.Path
        Fichier = Application.GetOpenFilename("Fichier TXT (*.txt), *.txt")
        If Fichier <> False Then LireFSO Fichier
    End Sub
     
    Private Sub LireFSO(ByVal sNomFichier As String)
    Dim s As String, sTmp As String
    Dim FSO As Object 
    Dim Fichier As Object
    Dim iRow As Long, iCol As Long
    Dim Ar() As String
    Dim i As Long
    Const Separateur As String * 1 = " "
     
        ShTst.Cells.Clear
        Application.ScreenUpdating = False
     
        Set FSO = CreateObject("Scripting.FileSystemObject")
        Set Fichier = FSO.GetFile(sNomFichier).OpenAsTextStream 
     
        iRow = 0
        Do While Not Fichier.AtEndOfStream
            iCol = 1: iRow = iRow + 1: sTmp = ""
            s = Fichier.ReadLine
            Ar = Split(s, Separateur)
            ShTst.Cells(iRow, iCol) = Ar(LBound(Ar))
            For i = LBound(Ar) + 1 To UBound(Ar)
                sTmp = Ar(i) & Separateur & sTmp
            Next i
            iCol = iCol + 1
            ShTst.Cells(iRow, iCol) = sTmp
        Loop
        Fichier.Close
     
        Set Fichier = Nothing
        Set FSO = Nothing
     
        Application.ScreenUpdating = True
    End Sub

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/12/2005, 15h57
  2. [Applet] lire un fichier texte
    Par lebesnec dans le forum Applets
    Réponses: 2
    Dernier message: 07/07/2005, 10h09
  3. Réponses: 1
    Dernier message: 24/11/2004, 16h54
  4. [Fichier] Lire un fichier texte long
    Par _Eric_ dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 18/08/2004, 15h22
  5. Réponses: 2
    Dernier message: 26/05/2004, 17h53

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