Problème lecture séquentielle fichier

Bonjour à tous,

Ne comprenant pas pourquoi la macro s’arrêtait après la lecture de la première ligne, je me suis décidé à mettre un msgbox du contenu de la première ligne et là en fait ma variable ContenuLigne contient une quinzaine de lignes pour une longueur de plus de 5000 caractères.

D'où ma question, est il possible d'identifier les retours chariot pour limiter la lecture ligne par ligne ?

Merci par avance de votre aide.

Sub LireFichierTexteParLigne()
Range("a4:n65000").ClearContents
Application.ScreenUpdating = False
On Error GoTo CodeErreur

Dim IndexFichier As Integer
Dim MonFichier As String
Dim ContenuLigne As String
Dim PosVirgule As Integer
Dim IndiceLigne As Integer
Dim IndiceColonne As Integer
IndiceLigne = 3
MoisRégul = Cells(1, 2)

MonFichier = Application.GetOpenFilename("Tous les Fichiers,*.*")

IndexFichier = FreeFile()
Open MonFichier For Input As #IndexFichier 'ouvre le fichier

While Not EOF(IndexFichier) '
    Line Input #IndexFichier, ContenuLigne
    PosVirgule = InStr(ContenuLigne, ",")
    TypeLigne = Mid(ContenuLigne, 1, PosVirgule - 1)
    If TypeLigne = "S21.G00.30.001" Then
        IndiceLigne = IndiceLigne + 1
        MoisRégulRef = ""
    End If
    ValeurLigne = Mid(ContenuLigne, PosVirgule + 1, 99)
    ValeurLigne = Replace(ValeurLigne, "'", "")
    Select Case TypeLigne
        Case "S20.G00.05.003" 'N° Fraction
            Cells(1, 11) = ValeurLigne
        Case "S20.G00.05.009" 'Période Paie
            Cells(1, 5) = ValeurLigne
        Case "S21.G00.30.001" 'NIR
            Cells(IndiceLigne, 1) = ValeurLigne
        Case "S21.G00.30.002" 'NOM FAMILLE
            Cells(IndiceLigne, 2) = ValeurLigne
eurLigne
    End Select
Wend

Close #IndexFichier ' ferme le fichier
Application.ScreenUpdating = True
Exit Sub

CodeErreur:
MsgBox "Une erreur s'est produite..."
Application.ScreenUpdating = True
End Sub

EXCELlente après midi

Philippe

Bonjour,

est il possible d'identifier les retours chariot pour limiter la lecture ligne par ligne ?

extrait de l'aide Excel:

L'instruction Line Input # lit un à un les caractères d'un fichier jusqu'au premier retour chariot (Chr(13)) ou retour chariot – saut de ligne (Chr(13) + Chr(10)) rencontré. Les séquences retour chariot – saut de ligne ne sont pas prises en compte (elles ne sont pas ajoutées à la chaîne de caractères).

ce qui signifierait qu'entre le début du fichier et la fin de la première ligne (caractère retour chariot) il y a plus de 5000 caractères.

Il faudrait alors agir sur le(s) fichier(s) .

S'agit-il d'un fichier texte( .txt) ?

Est-il possible de nous communiquer ce fichier ?

A+

Bonsoir

et merci de bien vouloir te pencher sur mon problème.

Ce qui est étrange c'est que si on ouvre ce fichier avec PSPAD et Bloc Note, nous n'avons pas la même vision (capture écran jointe).

Un grand merci par avance de votre aide.

Cordialement,

Philippe

pspad notebloc
27test.txt (4.06 Ko)

Bonsoir,

votre fichier TEST.txt importé dans Excel par le menu "données" du ruban à partir d'un fichier texte est correctement "découpé", Excel a utilisé le séparateur "tabulation". Soit trouver la correspondance VBA, soit faire cet import dans votre fichier sous VBA puis de travailler sur les lignes de cette importation.

@ bientôt

LouReeD

10test.xlsx (12.34 Ko)

Bonjour,

Merci de votre réponse.

En fait, je ne souhaitais pas faire un import de ce fichier dans excel.

Je souhaitais faire une lecture séquentielle pour récupérer que certaines données car le fichier texte de base contient plus de 20000 lignes.

Un grand merci par avance de votre aide.

EXCELlente journée à tous

Philippe

Je ne comprend pas pourquoi le code ne reconnait pas les retour chariot en fin de chaque ligne, même en les rajoutant manuellement?

et je n'ai pas non plus réussi à créer un fichier texte qui présente le même phénomène.

Désolé

Merci pour ta réponse.

Je cherchais une solution plus automatique mais je vais convertir ce fichier texte en fichier csv et ensuite exploiter ce nouveau fichier. Les premiers tests sont satisfaisants.

Un grand merci à toutes les personnes qui ont bien voulu se pencher sur mon problème.

EXCELlent après midi

Philippe

Rechercher des sujets similaires à "probleme lecture sequentielle fichier"