Recherche sur un fichier texte

Lachmacros

XLDnaute Nouveau
Bonjour Tout le monde,
cette Fois ci j'ai besoin de votre aide à partir d'une macro déjà réalisée
Code:
 Sub ExtraireTexte()
    Dim File As String, Result As String
    Dim strTemp As String, Chaine As String
    Dim FF1 As Integer, FF2 As Integer
 
    File = Application.GetOpenFilename
    Resultat = "C:\Result.txt"
 
    FF2 = FreeFile
    Open Result For Output As #FF2
 
    FF1 = FreeFile
    Open Fichier For Input As #FF1
        Do Until EOF(FF1)
            Line Input #FF1, strTemp            'lecture d'une ligne
            Chaine = CleanString(strTemp)
            If Trim(Chaine) <> "" Then Print , Chaine
        Loop
 
    Close #FF1
    Close #FF2
End Sub
 
Function CleanString(Chaine As String) As String
    Dim I As Long
    Dim Debut As Long, Fin As Long
    Dim strTemp As String
 
    For I = 1 To Len(Chaine)
        If Mid(Chaine, I, 1) = "#" Then Debut = I
        If Mid(Chaine, I, 1) = "}" Then Fin = I
        If Debut > 0 And Fin > 0 Then
            strTemp = strTemp & Mid(Chaine, Debut, Fin - Debut + 1) & vbCrLf
            Debut = 0: Fin = 0
        End If
    Next
    CleanString = strTemp
End Function

Grosso modo, ce code ouvre un fichier.txt et le traite en gardant les informations placées entre les symboles # et }
il affiche le résultat sur un fichier "Result.txt"
Comme j'ai une multitude de fichier je souhaite avoir le résultat de chaque fichier traité dans une feuille Excel (PJ: exemple du résultat souhaité)
existe il un moyen pour résoudre ce problème .
 

Pièces jointes

  • exemple.xlsx
    12.6 KB · Affichages: 24
  • exemple.xlsx
    12.6 KB · Affichages: 27
  • exemple.xlsx
    12.6 KB · Affichages: 28

Lachmacros

XLDnaute Nouveau
Re : Recherche sur un fichier texte

Merci John ,
Je veux intégrer la commande "Application.GetOpenFilename" dans le script afin que j'arrive a analyser les fichiers cas par cas.
le cas de ce code, mais le problème les feuilles ne s'incrémentent pas avec l'ajout d'un nouveau fichier.
Code:
Sub ExtraireTexte()
     Dim chemin As String, nomonglet As String
     Dim strTemp As String, Chaine As String
     Dim cpt, longueur As Integer
    [COLOR="#FF0000"] P = Application.GetOpenFilename[/COLOR]
            Open P For Input As #1
                cpt = 1
                While Not EOF(1)
                    Line Input #1, strTemp            'lecture d'une ligne
                    Chaine = CleanString(strTemp)
                    If Trim(Chaine) <> "" Then
                        Range("A" & cpt).Value = Chaine
                        cpt = cpt + 1
                    End If
                Wend
            Close #1
        Next x
     End If
    Application.ScreenUpdating = True
 End Sub
  
 Function CleanString(Chaine As String) As String
     Dim I As Long
     Dim Debut As Long, Fin As Long
     Dim strTemp As String
     For I = 1 To Len(Chaine)
         If Mid(Chaine, I, 1) = "[" Then Debut = I
         If Mid(Chaine, I, 1) = "]" Then Fin = I
         If Debut > 0 And Fin > 0 Then
             strTemp = strTemp & Mid(Chaine, Debut, Fin - Debut + 1) & vbCrLf
             Debut = 0: Fin = 0
         End If
     Next
     CleanString = strTemp
 End Function
Merci de ton aide
 

Lachmacros

XLDnaute Nouveau
Re : Recherche sur un fichier texte

Génial ton code ça marche à merveille;) merciiiii bcppp
juste une dernière chose , sans vouloir te déranger
c'est possible que la récupération de chaque ligne du fichier.txt soit intégrer dans une ligne du fichier Excel ? mais sur la même colonne
Je te remercie infiniment:)
 

john

XLDnaute Impliqué
Re : Recherche sur un fichier texte

Re,

De rien :)
C'est pas ce que le fichier fait pour le moment ??? chaque ligne est recopiée dans le fichier excel, juste les lignes vierges qui ne le sont pas, mais ça, c'est ta fonction et ta condition qui fait ça...

John
 

Lachmacros

XLDnaute Nouveau
Re : Recherche sur un fichier texte

Bonjour John, Le forum,
Je reviens à toi pour avoir une aide concernant une procédure que je suis entrain de l'effectuer et toujours dans le même contexte.
là je veux procéder par une autre manière pour ouvrir les fichiers de format .txt, au regard de la multitude des fichiers.
tu trouveras en pièce jointe une macros que j'ai trouvé sur un tuto.
Celle ci permet de chercher et de classer les fichier de format .txt
je veux exploiter ce code pour que les fichiers trouvés seront traités et affichés automatiquement dans les feuilles Excel.
Merci de ton aide
 

Pièces jointes

  • explore_fich.xlsm
    34.6 KB · Affichages: 19

john

XLDnaute Impliqué
Re : Recherche sur un fichier texte

Bonjour,

Si j'ai bien compris, tu veux pouvoir choisir le répertoire où se trouve les fichiers textes ?? et faire comme dans le premier fichier que je t'ai envoyé ??? ou juste lister les fichiers qui se trouvent dans le répertoire !!!!

John
 

Lachmacros

XLDnaute Nouveau
Re : Recherche sur un fichier texte

Si j'ai bien compris, tu veux pouvoir choisir le répertoire où se trouve les fichiers textes ?? et faire comme dans le premier fichier que je t'ai envoyé ??? ou juste lister les fichiers qui se trouvent dans le répertoire !!!!

ce que je veux c'est qu'à partir d'une exploration d'un dossier contenant des sous-dossiers, le code arrive à extraire les fichiers.txt et les place dans les feuilles Excel et ceux avec le traitement qui a été adapté avec la première macro.
Je ne sais pas si ceci est faisable.
Merci et encore une fois désolé pour le dérangement.
 

john

XLDnaute Impliqué
Re : Recherche sur un fichier texte

Re,

J'ai changé la fonction pour la sélection du dossier, regarde si c'est ok pour toi maintenant...

John
 

Pièces jointes

  • cherche_fich3.xls
    60 KB · Affichages: 23
  • cherche_fich3.xls
    60 KB · Affichages: 24
  • cherche_fich3.xls
    60 KB · Affichages: 23

Lachmacros

XLDnaute Nouveau
Re : Recherche sur un fichier texte

Chapeau , je te remercie infiniment
des fois quand il détecte deux fichiers similaires dans deux endroits différents, il bloc tout.
j'ai essayé d'utiliser la commande suivante avec Workbook mais sans résultat
Code:
nomonglet = ActiveWorkBook.Name
Sheets(1).Move after:=Workbooks(nomonglet).Sheets(Workbooks(nomonglet).Sheets.Count)
et ceux pour qu'il intègre deux fichiers similaires dans deux feuilles en ajoutant au nom de la 2eme feuille un "(2)" et ainsi de suite.
la macro ne peut pas faire une exploration sur un disque local ?(c'est juste une question si ce n'est pas le cas).
 

Discussions similaires

Statistiques des forums

Discussions
312 219
Messages
2 086 372
Membres
103 198
dernier inscrit
CACCIATORE