Office: (Office 2016) Externe Log Datei durchsuchen

Helfe beim Thema Externe Log Datei durchsuchen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo liebe Community, ich bin mit VBA bzw. Makros leider nicht wirklich vertraut und habe folgendes Problem ich benötige zur Loganalyse ein Makro,... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Fluki, 1. März 2021.

  1. Fluki Neuer User

    Externe Log Datei durchsuchen


    Hallo liebe Community,

    ich bin mit VBA bzw. Makros leider nicht wirklich vertraut und habe folgendes Problem ich benötige zur Loganalyse ein Makro, dass aus externen Logdateien die Anzahl bestimmter Vorkommnisse ausgibt. Allerdings haben die Logs mehr als 100.000 Zeilen, deshalb können wir sie nicht in eine Pivot-Tabelle. Der Logdateiname beinhaltet das Datum.
    Zum Beispiel:
    Eintrag in Log | 15.Feb | 16.Feb
    Scanner 1 enabled | 250 | 280
    Scanner 2 disabled | 300 | 310

    Das Makro soll alle "Scanner 1 enabled" vom 15. Februar (20210215.log) zählen und in Zelle "B5" eintragen und alle vom 16. Februar (20210216.log) zählen und in Zelle "C5" eintragen.
    Das gleiche mit "Scanner 2 disabled" vom 15. Februar in Zelle "B6" und vom 16. Februar in Zelle "C6"

    Danke schonmal Externe Log Datei durchsuchen *:)*
     
    Zuletzt bearbeitet: 1. März 2021
    Fluki, 1. März 2021
    #1
  2. Lutz Fricke Erfahrener User
    Hallo Fluki,

    dazu benötigst Du kein Makro.
    Schau die mal die Funktionen ZählenWenn und ZählenWennS an.

    Gruß,
    Lutz
     
    Lutz Fricke, 2. März 2021
    #2
  3. Fluki Neuer User
    Hallo Lutz,
    Danke für deine Hilfe
    Kann man mit Zählenwenn und ZählenWennS doch nur in der Excel Liste Suchen oder?
    Ich habe gute 35 Einträge die ich jeden Tag aus den Logs, die in einer externen Logdatei sind, auslesen will und dazu wäre ein Makro trotzdem perfekt.
    LG Fluki
     
    Fluki, 2. März 2021
    #3
  4. Lutz Fricke Erfahrener User

    Externe Log Datei durchsuchen

    Hallo Fluki,
    ein Makro ist natürlich auch aufwändiger...
    Um da was passendes zu basteln, fehlt mir leider die Zeit.

    Mit Zählenwenn kannst Du in einer Excel Datei nach einem Begriff suchen. Kannst Du natürlich dynamisch gestalten:
    =ZÄHLENWENN([export.XLSX]Sheet1!$A:$A;A2)
    In A2 steht z.B. "Scanner 1 enabled", in B2 "Scanner 2 disabled" usw.
    Formel runterziehen und fertig.

    Gruß,
    Lutz
     
    Lutz Fricke, 2. März 2021
    #4
  5. Fluki Neuer User
    Hallo Lutz,
    Mein Problem ist damit leider nicht behoben ich habe nämlich die Logs in einer .log Datei und es ist mir zu aufwendig diese jeden Tag in eine Excel-Liste zu importieren, außerdem erweitere ich meine Logs in paar Tagen und kann diese dann nicht mehr in eine Excel-Tabelle importieren, da diese die maximale Größe von Excel überschreiten.
    Deshalb benötige ich ein Makro, dass diese Suche für mich übernimmt.
    Trotzdem danke für deine Hilfe!
    LG Fluki
     
    Fluki, 2. März 2021
    #5
  6. Fluki Neuer User
    Kleines Update Ich habe den Befehl ActiveWorkbook.FollowHyperlink (File) verwendet, dieser öffnet mir meine Datei erfolgreich. Allerdings wie kann ich jetzt nach "Ereignis 1" suchen und die Werte zusammen zählen.
    Ich habe es mit Application.WorksheetFunction.ContIf() probiert allerdings erfolglos. Liegt es vielleicht daran, dass es auf mein Worksheet bezogen ist.
     
    Fluki, 2. März 2021
    #6
  7. Lutz Fricke Erfahrener User
    Hallo Fluki,

    wenn Du Code hast, einfach dazu posten. Meine hellsehereischen Fähigkeiten sind deutlich begrenzt...

    Gruß,
    Lutz
     
    Lutz Fricke, 2. März 2021
    #7
  8. Fluki Neuer User

    Externe Log Datei durchsuchen

    Hallo Lutz,
    tut mir leid ich habe ein bisschen mit Fragezeichen geschrieben hier mein Code und eine kurze Erklärung dazu.

    Ich habe bereits mit Arrays alle in den Zeilen eingetragenen Ereignisse ausgelesen und die Spaltennamen in denen das Datum enthalten ist ausgelesen. Zusätzlich öffnen sich die .log-Dateien in Notepad++. Jetzt möchte ich mit meinen beiden Arrays die Anzahl diverser Ereignisse aus der Logdatei auslesen und in die richtige Zelle eintragen.

    Code:
    Sub Readstates()
    
    Dim state()
    Dim size As Integer
    Dim logs As Integer
    Dim i As Integer
    Dim j As Integer
    Dim a As Integer
    Dim File() As String
    
    size = WorksheetFunction.CountA(Worksheets("Tabelle").Columns(1))
    logs = WorksheetFunction.CountA(Worksheets("Tabelle").Rows(1))
    
    ReDim state(size)
    ReDim File(logs - 1)
    For j = 0 To logs - 1
    
        File(j) = "C:\documents\" + Cells(1, j + 3) + ".0.log"
        ActiveWorkbook.FollowHyperlink (File(j))
        Worksheets("Tabelle").Cells(1, j + 3).Font.Bold = True
     
    Next j
    
    For i = 0 To size
    
        state(i) = Cells(i + 1, 1).Value
        If state(i) = "Name" Or state(i) = "Text" Or state(i) = "Others" Or state(i) = "" Then
        Worksheets("Tabelle").Cells(i + 1, 2).Value = ""
        Worksheets("Tabelle").Cells(i + 1, 1).Font.Bold = True
        
        
        Else
        Worksheets("Tabelle").Cells(i + 1, 2).Value = "OK"
        End If
        
    Next i
    End Sub
     
    Fluki, 2. März 2021
    #8
  9. Lutz Fricke Erfahrener User
    Hallo Fluki,

    da läuft einiges wild durcheinander...
    Warum liest Du die Dateinamen in ein Feld ein? Warum nimmst Du FollowHyperlink?

    So würde ich das ganze angehen:
    Ereignisse in Feld einlesen. Im Feld 1 Spalte mit Ereignissen, 2. Spalte leer lassen
    1.Schleife durchläuft deine Spaltennamen und ermittelt daraus den Dateipfad und -namen.
    Datei öffnen.
    2. Schleife durchläuft Datei von oben bis unten
    Vergleich des Ereignisses mit dem Feld
    Wenn erfolgreich im Feld 2. Spalte um 1 erhöhen.
    Ende 2. Schleife
    Datei schließen.
    2. Spalte des Feldes in die zu erstellende Liste eintragen, Feldwerte auf "0" setzen.
    Ende 1. Schleife

    Wie schon geschrieben, habe ich nicht die Zeit das richtig auszuarbeiten.

    Gruß,
    Lutz
     
    Lutz Fricke, 2. März 2021
    #9
  10. Fluki Neuer User
    Hallo Lutz,
    danke für deine hilfreiche Antwort!
    Welchen Befehl soll ich statt FollowHyperlink verwenden und mit welchem Befehl kann ich die Datei wieder schließen?
    Mit welchen Befehl kann ich die Ereignisse auslesen?
    Werde jetzt mal meinen Code ändern so wie du es vorgeschlagen hast.
    Danke vielmals für deine Hilfe
    LG Fluki
     
  11. Lutz Fricke Erfahrener User
    Hallo Fluki,

    ich würde üblicherweise nutzen:
    Set wkbAuslesen = Workbooks.Open("C:\documents\" & Cells(1, j + 3) & ".0.log")
    Damit übergebe ich die Datei gleich der Objekt-Variablen "wkbAuslesen". Macht das Ansprechen der Datei später einfacher.
    Mit wkbAuslesen.Close wird sie geschlossen.

    Bereich der Ereignisse ermitteln und in Feld einlesen:
    letztezeile = wkbVorgabe.Cells(Rows.Count, 1).End(xlUp).Row
    For Zeile= 2 to letzteZeile
    Ereignis(Zeile-1,1)=wkbVorgabe(Zeile,1)
    Next Zeile

    Mit dieser Schleife kannst Du dann den Test und die Susgabe laufen lassen:
    For Zeile= 1 to UBound(Ereignis,1)
    Ereignis(Zeile,2)=....
    Next Zeile

    Noch ein kleiner Tipp:
    An den Anfang jedes Moduls gehört ein:
    Option Explicit
    Option Base 1
    Damit wirst Du verpflichtet alle Variablen zu deklarieren und alle Felderindices fangen bei 1 an zu zählen statt bei 0.

    Gruß,
    Lutz
     
    Lutz Fricke, 2. März 2021
    #11
  12. Fluki Neuer User
    Hallo Lutz,
    Hast du eventuell auch ein Lösung wie ich es ohne neuer Excel Mappe mache?
    LG Fluki
     
  13. Fluki Neuer User

    Externe Log Datei durchsuchen

    Hallo Lutz ich hab das nochmal anders ausprobiert:

    Open File(0) For Input As 1
    Do Until EOF(1)
    Line Input #1, line
    Logentries(2, 2) = InStr(line, "INFO")
    Allerdings übernimmt er mehr als nur zeile 1 bei line

    LG
    Fluki
     
  14. Lutz Fricke Erfahrener User
    Hallo Fluki,

    mit der Verarbeitung von Datensätzen, wie du sieprobiert hast, kenne ich mich nicht aus...

    Wo ist das Problem mit der neuen Excel-Mappe? Oder macht's Deine Datei nicht gescheit auf?
    Dann probier mal, den Rekorder anzuschmeißen, den .log-File im Excel öffnen und anschließend den Code posten.

    Gruß,
    Lutz
     
    Lutz Fricke, 3. März 2021
    #14
  15. Fluki Neuer User
    Hallo Lutz,

    Danke nochmal für deine Hilfe. Ich habe es mit deiner Variante ausprobiert aber die Logs sind leider zu groß und werden abgeschnitten, außerdem ist es mir lieber ohne extra Excel-file.
    Ich hole mir jetzt mit Split jede log Zeile aus der externen Datei in die var line und das funktioniert auch so weit, allerdings funktioniert mein Zähler nicht ganz. Ich will jeden Eintrag im state-array in der line var suchen und das dann für alle files (File-array) machen.

    Ich hab dir untern meinen Code angehängt.

    Code:
    For jj = 0 To logs - 1
        For ii = 0 To size
           
            'Datei öffnen und auslesen mit InStr
            Open File(jj) For Input As #1
                line = Split(Input$(LOF(1), 1), vbLf)
                entries(ii, jj) = InStr(1, line(0), state(ii))
                Worksheets("Tabelle").cells(ii + 2, jj + 3) = entries(ii, jj)
            Close
        Next ii
    Next jj
    LG Fluki
     
Thema:

Externe Log Datei durchsuchen

Die Seite wird geladen...
  1. Externe Log Datei durchsuchen - Similar Threads - Externe Log Datei

  2. Externe Mails mit bedingter Formatierung farbig hervorheben

    in Microsoft Outlook Hilfe
    Externe Mails mit bedingter Formatierung farbig hervorheben: Hallo zusammen! Ich möchte externe Mails (also Mails von Versendern, die nicht von der Domain @geanvas.com kommen) in meinem Posteingang farbig hervorheben. Dazu habe ich in der bedingten...
  3. Nur eindeutige Werte berechnen aus externer Datei

    in Microsoft Excel Hilfe
    Nur eindeutige Werte berechnen aus externer Datei: Hallo zusammen, ich stehe etwas auf dem Schlauch und hoffe ihr könnt mir weiterhelfen falls es überhaupt möglich ist. Ich habe eine Datei wo die Ergebnisse ausgegeben werden sollen und eine...
  4. Variable in Pfad zu externem Inhalt (Sharepoint)

    in Microsoft Excel Hilfe
    Variable in Pfad zu externem Inhalt (Sharepoint): Hallo, ich habe eine Excel-Tabelle, welche Daten aus einem externen Bezug holt. Der Pfad sieht so aus:...
  5. E-Mail aus externer Quelle

    in Microsoft Outlook Hilfe
    E-Mail aus externer Quelle: Hallo, es handelt sich hier um Outlook 2016 auf einem Windows 10 System. Es gibt E-Mails die man über den klasischen Weg/Empfang selbst erhält, diese landen dann zuerst im Posteingangs Ordner....
  6. Öffnen einer externen Präsentation

    in Microsoft PowerPoint Hilfe
    Öffnen einer externen Präsentation: Moin Moin In unserem Unternehmen gibt es drei Abteilungen plus den Chef. Jede Abteilung und der Chef pflegt eine eigene Präsentation. Einmal die Woche soll es eine gemeinsame Präsentation geben....
  7. Suche nach zwei Kriterien in externem Excel-Dokument

    in Microsoft Excel Hilfe
    Suche nach zwei Kriterien in externem Excel-Dokument: Hallo allerseits. Ich brauche wieder mal Hilfe. Ich habe eine Tabelle Spalte A - Kundennummer Spalte B - Produktnummer Steht die Produktnummer neben einer Kundennummer, hat dieser Kunde dieses...
  8. Zählenwenns mit externem Bezug (Matrixformel)

    in Microsoft Excel Hilfe
    Zählenwenns mit externem Bezug (Matrixformel): Hallo in die Runde, ich habe folgende Herausforderung, bei der ich eure Hilfe brauche. Ich habe 1 Auswertungsdatei, die mir aus einer Anzahl an wachsenden Exceldateien auswerten soll, wie oft...
Schlagworte:
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden