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

Importer un fichier txt en triant les informations dans différentes colonnes

  • Initiateur de la discussion Initiateur de la discussion satanael
  • 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 !

satanael

XLDnaute Nouveau
Bonjour tout le monde,


J'ai besoin au boulot d'exploiter un fichier log donc chaque lignes se composent comme cet exemple:


Mon 03 Aug 2009 11:00:22 : CONN STAT : Instance:'Internet' Protocol:'HTTP-Proxy' Port:'8080' Client IP:'105.152.17.3' User:'patrique sebastien' Website:'www.cadremploi.fr' URL:'/jsv5/xiti.js' From Client: 719 bytes To Client: 12101 bytes

Le but du jeu est de mettre chaque informations de cette ligne dans des cellules en formant une nouvelle ligne sous excel.


Mon 03 Aug 2009 = Date
11:00:22 = time
CONN STAT : Instance:'Internet' = session
Protocol:'HTTP-Proxy' = protocol
Port:'8080' = port
Client IP:'105.152.17.3' = IP
User:'patrique sebastien' = user
Website:'www.cadremploi.fr' = Domaine
URL:'/jsv5/xiti.js' = URL
From Client: 719 bytes = Up
To Client: 12101 bytes = Down



Le problème c'est que je n'ai pas les connaissances pour réaliser cette tache ...
Et qu'en plus il n'y a pas de marquant ou de séparateur entre chaque information...

Et pour finir l'admin internet de mon boulot bloque le téléchargement de script alors si vous pouviez joindre vos réponses dans un fichiers word çà serait parfait.

Je vous joint quelques lignes de mon fichier log


Mon 03 Aug 2009 11:00:22 : CONN STAT : Instance:'Internet' Protocol:'HTTP-Proxy' Port:'8080' Client IP:'105.152.17.3' User:'albert camus' Website:'aka-cdn-ns.adtech.de' URL:'/apps/185/Ad1776313St3Sz16Sq2974590V2Id167/CE_newsletter_160x600_02.swf' From Client: 1129 bytes To Client: 22706 bytes
Mon 03 Aug 2009 11:00:41 : CONN STAT : Instance:'Internet' Protocol:'HTTP-Proxy' Port:'8080' Client IP:'105.152.17.3' User:'marcel proust' Website:'safebrowsing-cache.google.com' URL:'/safebrowsing/rd/goog-malware-shavar_s_14181-14200.14181-14200.:' From Client: 660 bytes To Client: 35823 bytes
Mon 03 Aug 2009 11:00:53 : CONN STAT : Instance:'Internet' Protocol:'HTTP-Proxy' Port:'8080' Client IP:'105.152.17.3' User:'claire patriosky' Website:'webmail.laposte.net' URL:'/webmail/fr_FR/CSS/addressbook200907271705.css' From Client: 701 bytes To Client: 5203 bytes
Mon 03 Aug 2009 11:00:54 : CONN STAT : Instance:'Internet' Protocol:'HTTP-Proxy' Port:'8080' Client IP:'105.152.17.3' User:'marcel proust' Website:'webmail.laposte.net' URL:'/webmail/fr_FR/Scripts/commonOther200907271705.js' From Client: 689 bytes To Client: 102144 bytes
Mon 03 Aug 2009 11:00:55 : CONN STAT : Instance:'Internet' Protocol:'HTTP-Proxy' Port:'8080' Client IP:'105.152.17.3' User:'henry lorial' Website:'webmail.laposte.net' URL:'/webmail/fr_FR/junk.html' From Client: 724 bytes To Client: 103672 bytes
Mon 03 Aug 2009 11:00:59 : CONN STAT : Instance:'Internet' Protocol:'HTTP-Proxy' Port:'8080' Client IP:'105.152.17.3' User:'patrique sebastien' Website:'webmail.laposte.net' URL:'/webmail/fr_FR/Scripts/common-fct200907271705.js' From Client: 688 bytes To Client: 153964 bytes

En espérant que vous puissiez me venir en aide.
Merci d'avance et bonne journée.
 
Re : Importer un fichier txt en triant les informations dans différentes colonnes

Salut,

Essaie ca (place le fichier excel et log dans le meme dossier)

Code:
Option Explicit

Sub ImportLog()
    Dim Fichier As String, LigneLog As String
    Dim NumLigneLog As Integer, Position As Integer
    
    Fichier = ThisWorkbook.Path & "\Fichier.log" [COLOR=Red][B]'<- a modifier nom du fichier log a traiter[/B][/COLOR]
    
    Application.ScreenUpdating = False
        Feuil1.Cells.Clear
        If Dir(Fichier) <> "" Then
            Open Fichier For Input As #1
            
            Do While Not EOF(1)
                NumLigneLog = NumLigneLog + 1
                Line Input #1, LigneLog
                
                Feuil1.Range("A" & NumLigneLog).Value = Left(LigneLog, 15)
                LigneLog = Mid(LigneLog, 17)
                
                Feuil1.Range("B" & NumLigneLog).Value = Left(LigneLog, 8)
                LigneLog = Mid(LigneLog, 12)
                
                Position = InStr(1, LigneLog, "Protocol:")
                Feuil1.Range("C" & NumLigneLog).Value = Left(LigneLog, Position - 2)
                LigneLog = Mid(LigneLog, Position)
                
                Position = InStr(1, LigneLog, "Port:")
                Feuil1.Range("D" & NumLigneLog).Value = Left(LigneLog, Position - 2)
                LigneLog = Mid(LigneLog, Position)
                
                Position = InStr(1, LigneLog, "Client IP:")
                Feuil1.Range("E" & NumLigneLog).Value = Left(LigneLog, Position - 2)
                LigneLog = Mid(LigneLog, Position)
            
                Position = InStr(1, LigneLog, "User:")
                Feuil1.Range("F" & NumLigneLog).Value = Left(LigneLog, Position - 2)
                LigneLog = Mid(LigneLog, Position)
            
                Position = InStr(1, LigneLog, "Website:")
                Feuil1.Range("G" & NumLigneLog).Value = Left(LigneLog, Position - 2)
                LigneLog = Mid(LigneLog, Position)
                
                Position = InStr(1, LigneLog, "URL:")
                Feuil1.Range("H" & NumLigneLog).Value = Left(LigneLog, Position - 2)
                LigneLog = Mid(LigneLog, Position)
                
                Position = InStr(1, LigneLog, "From Client:")
                Feuil1.Range("I" & NumLigneLog).Value = Left(LigneLog, Position - 2)
                LigneLog = Mid(LigneLog, Position)
                
                Position = InStr(1, LigneLog, "To Client:")
                Feuil1.Range("J" & NumLigneLog).Value = Left(LigneLog, Position - 2)
                LigneLog = Mid(LigneLog, Position)
            
                Feuil1.Range("K" & NumLigneLog).Value = LigneLog
            Loop
            Close #1
    
            
        Else
            MsgBox "Le fichier '" & Fichier & "' est introuvable.", vbOKOnly
        End If
    Application.ScreenUpdating = True
End Sub
 
Re : Importer un fichier txt en triant les informations dans différentes colonnes

Merci bien c'est parfait ...


Juste un problème excel me lâche au bout de la ligne 35000 ...

Ce qui me permet de traité que deux jours dans un seul mois ...

Si vous avez une solution pour passer outre cette limitation n'hésitez pas !

Merci pour votre aide.
 
Re : Importer un fichier txt en triant les informations dans différentes colonnes

Bonjour satanael, Minick

Cela aurait été bien d'avoir le fichier en .txt par exemple, c'est plus simple pour aider et tester.

Sinon dans le journal log, il n' y a pas de possibiltés de mettre un séparateur plus facile a interpréter.
 
Re : Importer un fichier txt en triant les informations dans différentes colonnes

Salut,

Change le type de la variable
Code:
NumLigneLog As Integer
en
Code:
NumLigneLog As Double
Ca devrait etre bon


EDIT :
Un long suffira d'ailleur
Code:
NumLigneLog As Long
 
Dernière édition:
- 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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…