IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

ouvrir un fichier log avec excel en vbs


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Septembre 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 2
    Par défaut ouvrir un fichier log avec excel en vbs
    Bonjour, svp cest urgent jai besoin de vos aide, je suis debutante j'ai un project trés urgent ..je reussie a lire le fichier ligne par ligne champs par champs... afin d'ordonner les evenements ds le fichier log je vx louvrir par excel et mettre chaque champs ds une cellule puis recuprer les adresses ip ds un tableau et faire un tri selon le taux d'apparition d'@ ip
    jai utilisé ce script pr louvrir avc excel mais jai eu un resultat desordonée svp aidez moi voial une ligne de fichier
    [Sat Nov 01 07:45:27 2008] [alert] [RS_ERROR][196.203.24.2][][2981880900][5][REQUEST NOT FORWARDED] GET /j2ee/<js/ctrl_cpte.js HTTP/1.1
    je veux mettre les adreeses ip dans un tableau en mettant chaque fois combien de fois apparait chaque ip afin dafficher des statistiques sous formes de graphes merci de me repondre

  2. #2
    Membre éclairé
    Inscrit en
    Septembre 2009
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 63
    Par défaut
    Ha, ben c'est pas simple ce que tu demandes.
    Il y en a pour 3 jours a faire un script pareil!

    Pourquoi pas faire un fichier csv (si le but est seulement de visioner dans excel par après)
    Il faut alors juste faire ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set csvFile = fso.CreateTextFile("test.csv", True)
    csvFile.Write Replace( MesDonneesEnEntier , "][", ";")
    csvFile.Close
    'etc
    (le séparateur csv est la virgule ou le point virgule? Je ne sais plus)

    Sinon pour prendre les données intelligement je commencerais par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ml = Split(MaLigne, "][")
    MyDate = ml(0)
    MyAlert = ml(1)
    MyError = ml(2)
    MyIp    = ml(3)
    'etc
    HTH

  3. #3
    Membre éclairé
    Inscrit en
    Septembre 2009
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 63
    Par défaut
    J'oubliais...

    si le but est seulement de visioner dans excel par après et qu'on sauve en csv, on a avantage même si c'est pas prévu, de mettre de tabs comme séparateurs. Comme ça Excel divise le document directement en collonnes.

    Comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set csvFile = fso.CreateTextFile("test.csv", True)
    csvFile.Write Replace( MesDonneesEnEntier , "][", VbTab)
    csvFile.Close
    'etc
    Après il suffit de doublecliquer sur test.csv et Hop!

  4. #4
    Nouveau candidat au Club
    Inscrit en
    Septembre 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 2
    Par défaut Bonjour
    merci pour la reponse comme meme mais ca marche pas
    mon fichier contient des champs je vx les mettres ds des cellules jai essayé avec ce script mais jai pa eu une resultat organisé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    strComputer = "."
     
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
     
    Set objExcel = CreateObject("Excel.Application")
    Set objWorkbook = objExcel.Workbooks.Open("C:\log\log1.txt")
    objExcel.Visible = True
     
    i = 1
     
    Do Until objExcel.Cells(i, 1).Value = ""
        strOldFolderName = objExcel.Cells(i, 1).Value
        strNewFolderName = objExcel.Cells(i, 2).Value
        strOldFolderName = Replace(strOldFolderName, "\", "\\")
     
        Set colFolders = objWMIService.ExecQuery _
            ("Select * from Win32_Directory where Name = '" & strOldFolderName & "'")
     
        For Each objFolder in colFolders
            errResults = objFolder.Rename(strNewFolderName)
        Next
     
        i = i + 1
    Loop
     aussi avce ceci et ca marche pa ilya des erreurs 
    Sub importExcelCrochet() 
    Range("A3").Select 
    Workbooks.Add 
    With ActiveSheet.QueryTables.Add(Connection:="TEXT;C:\log\log1.txt", _ 
    Destination:=Range("A1")) 
    .Name = "ImpExcel" 
    .FieldNames = True 
    .RowNumbers = False 
    .FillAdjacentFormulas = False 
    .PreserveFormatting = True 
    .RefreshOnFileOpen = False 
    .RefreshStyle = xlInsertDeleteCells 
    .SavePassword = False 
    .SaveData = True 
    .AdjustColumnWidth = True 
    .RefreshPeriod = 0 
    .TextFilePromptOnRefresh = False 
    .TextFilePlatform = 850 
    .TextFileStartRow = 1 
    .TextFileParseType = xlDelimited 
    .TextFileTextQualifier = xlTextQualifierDoubleQuote 
    .TextFileConsecutiveDelimiter = False 
    .TextFileTabDelimiter = False 
    .TextFileSemicolonDelimiter = False 
    .TextFileCommaDelimiter = False 
    .TextFileSpaceDelimiter = False 
    .TextFileOtherDelimiter = "]" 
    .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1) 
    .TextFileTrailingMinusNumbers = True 
    .Refresh BackgroundQuery:=False 
    End With 
    Application.CommandBars("External Data").Visible = False 
    End Sub

  5. #5
    Membre éclairé
    Inscrit en
    Septembre 2009
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 63
    Par défaut
    Je vois. Il faudrait de 1/ avoir sous les yeux les messages d'erreurs.
    de 2/ avoir un script complet, pas un où la moitié des objets sont indéfinis

    et de 3/ Utiliser une technologie plus simple et plus fiable que "ActiveSheet.QueryTables" et autre trucs Excell parceque là il faut vraiment s'y connaitre!

    Si j'étais tois je chercehrais plus dans la manipulation directe du texte telle que je t'en ai montré quelques examples en vitesse.
    Biensur ça demande aussi un certain travail de déboguage, mais c'est toujours plus facile que manipuler des fonctions Excell.
    Et au moin tu verras directement ce que tu fais. Cherche "manipulation de chaines" ou "string manipulation" et "lire et ecrire dans des fichiers en vbscript"
    "working with arrays" (les mots sont plus précis en anglais) etc.

    Faut commencer par le début...

    J'espère que j'ai pu un peu t'aider. Bonne chance.

Discussions similaires

  1. Réponses: 6
    Dernier message: 25/08/2008, 13h36
  2. Réponses: 1
    Dernier message: 25/08/2008, 11h57
  3. Comment ouvrir un fichier .xla avec excel ?
    Par Australia dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/11/2006, 18h08
  4. Ouvrir un fichier text avec Excel
    Par Chopard dans le forum Delphi
    Réponses: 2
    Dernier message: 07/11/2006, 22h33
  5. comment ouvrir un fichier XML avec excel
    Par ALCINA dans le forum XML/XSL et SOAP
    Réponses: 7
    Dernier message: 24/03/2006, 14h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo