Lecture de fichiers avec chemin d'accès variable

Scoobidoo

XLDnaute Occasionnel
Bonjour à tous , le forum

j'ai récupérer le code suivant qui me permet de compter le nombre de ligne d'un fichier Txt. Il marche très bien lorsque je mets le chemin du fichier à traiter en "dur"

Code:
Sub CompteLigne()

Dim NbLigne As Long
Dim intFic As Integer
Dim strLigne As String

intFic = FreeFile
Open "C:\TonChemin\TonFichier.txt" For Input As intFic
While Not EOF(intFic)
Line Input #intFic, strLigne
NbLigne = NbLigne + 1
Wend
Close intFic
MsgBox NbLigne
End Sub

Pour ma part, les chemins de tous mes fichiers à traiter se trouvent dans une colonne (3) et je souhaite faire une boucle. J'essaie donc de modifier le code existant comme suit mais ca ne fonctionne pas.

Code:
Sub CompteLigne()

    Dim NbLigne As Long
    Dim intFic As Integer
    Dim strLigne As String
    Dim MaLigneExcel As Long
    Dim CheminFichier As String

    MaLigneExcel = 2
    intFic = FreeFile
    Do While Cells(MaLigneExcel, 3) <> ""
        CheminFichier = Cells(MaLigneExcel, 3)
        Open CheminFichier For Input As intFic
        While Not EOF(intFic)
            Line Input #intFic, strLigne
            NbLigne = NbLigne + 1
        Wend
        Close intFic
        Cells(MaLigneExcel, 4) = NbLigne
        MaLigneExcel = MaLigneExcel + 1
    Loop
End

J'ai un message d'erreur "chemin d'accès introuvable" sur la ligne Open CheminFichier For Input As intFic.
je pense m'approcher de la vérité mais je ne la trouve pas. Quelqu'un pourrait-il avoir la gentillesse de corriger mon nouveau code ou me mettre sur la piste de la résolution.

D'avance merci à tous et bon après midi

Scoobidoo
 

Scoobidoo

XLDnaute Occasionnel
Re : Lecture de fichiers avec chemin d'accès variable

Bonjour Gilbert_RGI,

Merci pour ta réponse.
Ca fonctionne très bien quand je copie/colle le chemin à la place de "C:\TonChemin\TonFichier.txt". Quand je fais pas à pas la valeur de CheminFichier est la même avec les guillemets et tout mais ca ne fonctionne pas . J'ai trouve ca dans l'aide d'excel :
Numéro de fichier valide compris entre 1 et 511, inclus. Utilisez la fonction FreeFile pour obtenir le prochain numéro de fichier disponible.
.

Pour ma part j'ai plus de 3000 fichiers à analyser. Ne serait pas là la problème ? En fait je suis perdu !

Merci à tous pour votre aide.

Scoobidoo
 

Scoobidoo

XLDnaute Occasionnel
Re : Lecture de fichiers avec chemin d'accès variable

Au moment ou j'ai reçu votre réponse je venais de faire l'essai sur un autre ligne que ma ligne de départ et effectivement ca fonctionne ! Je suis très sincèrement désolé et confus non seulement de vous avoir dérangé mais surtout de ne pas avoir pris le temps d'analyser votre première réponse avant d'y répondre à mon tour. Merci Gilbert vous m'avez mis sur la bonne voie.
Bon après midi.

Scoobidoo
 

gilbert_RGI

XLDnaute Barbatruc
Re : Lecture de fichiers avec chemin d'accès variable

Vous pouvez améliorer le code pour vous donner un message lors d'une erreur dans le nom du chemin du fichier

Code:
Sub CompteLigne()
 
    Dim NbLigne As Long
     Dim intFic As Integer
     Dim strLigne As String
     Dim MaLigneExcel As Long
     Dim CheminFichier As String
 On Error GoTo erreur
 
    MaLigneExcel = 2
     intFic = FreeFile
     Do While Cells(MaLigneExcel, 3) <> ""
         CheminFichier = Cells(MaLigneExcel, 3)
         Open CheminFichier For Input As intFic
         While Not EOF(intFic)
             Line Input #intFic, strLigne
             NbLigne = NbLigne + 1
         Wend
         Close intFic
         Cells(MaLigneExcel, 4) = NbLigne
         MaLigneExcel = MaLigneExcel + 1
     Loop
          Exit Sub
     
erreur:
     MsgBox "Il y a une erreur ligne : " & MaLigneExcel
 End
 

Scoobidoo

XLDnaute Occasionnel
Re : Lecture de fichiers avec chemin d'accès variable

Merci Gilbert pour votre proposition d'amélioration que j'ai bien entendu ajouter à mon code.

L'appétit venant en mangeant, y a t il un moyen pour que le système, au lieu de m'afficher la boite de dialoque qui met ensuite fin à la procédure, mindique en colonne 4 qu'il y a un erreur sur la ligne mais continue a tourner avec la ligne suivante etc.. ?

Ce serait ma cherry on the cake !!

En tout cas merci beaucoup pour vous être penché sur mon problème ainsi que pour votre amélioration.

Scoobidoo
 

gilbert_RGI

XLDnaute Barbatruc
Re : Lecture de fichiers avec chemin d'accès variable

Qu'est-ce que vous pensez de ça ?

mettre le fichier test.txt dans c:\ :p
 

Pièces jointes

  • calcul de ligne dans fichier txt.xlsm
    19 KB · Affichages: 26
  • test.txt
    129 bytes · Affichages: 29
  • test.txt
    129 bytes · Affichages: 33
  • test.txt
    129 bytes · Affichages: 32

Scoobidoo

XLDnaute Occasionnel
Re : Lecture de fichiers avec chemin d'accès variable

Cher Gilbert,

Que dire ? Eh bien, tout simplement que c'est super !!

Je viens de la faire tourner sur un bout de mon fichier et le résultat est exactement ce que j'aurais souhaité savoir faire ! Un énorme merci pour cette aide extraordinaire.

Tès bonne fin de journée et au plaisir de vous retrouver au fil du forum.

Bien cordialement.

Scoobidoo
 

Discussions similaires

Réponses
4
Affichages
543

Statistiques des forums

Discussions
312 294
Messages
2 086 928
Membres
103 404
dernier inscrit
sultan87