Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Boucle importation fichiers texte

  • Initiateur de la discussion Initiateur de la discussion Adyy
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

Adyy

Guest
Bonjour,

J'aimerais importer des fichiers .txt sur un classeur excel via une macro mais une fois que j'ai importé tout les fichiers du répertoire sur le classeur je n'arrive pas à mettre fin à la boucle While suivante:


Code:
Sub Imports()
    
'Déclarations
    Dim Chaine As String
    Dim Ar() As String
    Dim I As Long
    Dim iRow As Long, iCol As Long
    Dim FileName As String
    Dim Path As String
    Dim Separateur As String * 1
    
 'Initialisations
    Separateur = ";"
    Cells.Clear
    iRow = 2
    iCol = 2
    Path = "F:\LOGS\*.txt"
    FileName = "F:\LOGS\" + Dir(Path)   

'Boucle sur le répertoire
    While FileName <> ""
       Open FileName For Input As #1
       iCol = 1
       Line Input #1, Chaine
       
        'On parse le fichier dans un tableau
         Ar = Split(Chaine, Separateur)
                  
        'On écrit dans Excel
         For I = LBound(Ar) To UBound(Ar)
             Cells(iRow, iCol) = Ar(I)
             iCol = iCol + 1
         Next
         iRow = iRow + 1
        FileName = "F:\LOGS\" + Dir
        
       Close #1
    
    Wend
 End Sub
 
Re : Boucle importation fichiers texte

bonsoir,



Par ailleurs, à éviter les mots réservés VBA ( tel que Path) comme nom de variables.

Proposition de modification (un peu rapide) supprimée


Bonne suite
 
Dernière édition:
Re : Boucle importation fichiers texte

re

après une réponse trop rapide, une réponse plus réfléchie:

Dans FileName = "F:\LOGS\" + Dir(Path) FileName ne sera jamais vide puisqu'il contiendra au moins "F:\LOGS\" même si Dir ne "ramène rien. Donc on sortira jamais de la boucle While FileName <> ""

Par ailleurs, FileName = "F:\LOGS\" + Dir "ramène" toujours le premier fichier trouvé.Il faut utiliser Dir seul.
Et en dernier le code ne ramène qu'une ligne du fichier texte. S'il y avait plusieurs lignes à récupérer il faudrait envisager une boucle While Not EOF(1)

Code proposé

Code:
    Chemin = "F:\LOGS\"
    Filename = Dir(Chemin & "*.txt")
'Boucle sur le répertoire
    While Filename <> ""
        Open Chemin & Filename For Input As #1
             Line Input #1, Chaine
             'code
        Close #1
    
        Filename = Dir
  
    Wend

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
772
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…