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. Outlook 365 - Termin-Erinnerung per E-Mail an externe E-Mail, bei anstehendem Termin in Outlook 365

    in Microsoft Outlook Hilfe
    Outlook 365 - Termin-Erinnerung per E-Mail an externe E-Mail, bei anstehendem Termin in Outlook 365: Hallo aus Norddeutschland, unsere Version Outlook 365 ->> auf PC´s windows 10-Pro ( Stand 12.05.21 - 13:00 Uhr ) [ATTACH] Wir möchten eine Termin-Erinnerung per E-Mail an externe...
  3. Excel 2003 öffnet externe Hyperlinks nicht mehr

    in Microsoft Excel Hilfe
    Excel 2003 öffnet externe Hyperlinks nicht mehr: Halo, ich habe ein Problem in Excel 2003, vielleicht kann mir jemand weiterhelfen: das Problem ist, daß Excel 2003 externe Hyperlinks (also Hyperlinks, die auf eine Internet-Seite verweisen)...
  4. Chat für Gäste und Externe freigeben

    in Microsoft Teams Hilfe
    Chat für Gäste und Externe freigeben: Liebes Microsoft -Hilfe Team, Ich verfüge über ein MS-Teams-Basic Abonnement und muss offene Sitzungen erstellen, wobei die Teilnehmer über einen Link über den Browser teilnehmen sollen - da sie...
  5. Teams Meeting mit externen Gästen ohne den Organisator

    in Microsoft Teams Hilfe
    Teams Meeting mit externen Gästen ohne den Organisator: Hallo, ist es möglich ein Teams Meeting durchzuführen ohne den, der die Einladungen verschickt hat? Oder muss derjenige anwesend sein um externe Gäste zuzulassen? MfG...
  6. Externer Kontakt nicht erreichbar

    in Microsoft Teams Hilfe
    Externer Kontakt nicht erreichbar: Guten Morgen, ich habe folgendes Problem: Obwohl mein externer Kontakt online und verfügbar ist, erscheint beim Anruf die Fehlermeldung: "Die Person, die Sie erreichen möchten, ist nicht...
  7. Externe Teilnehmer Wartebereich einlassen

    in Microsoft Teams Hilfe
    Externe Teilnehmer Wartebereich einlassen: Hallo, ich habe externe Teilnehmer in MS Teams (kostenlose Version) zu einer Besprechung eingeladen. Diese nehmen die Einladung an und erhalten die Meldung, dass sie im Wartebereich darauf warten...
  8. ausgehender externer Teams-Anruf bricht direkt ab

    in Microsoft Teams Hilfe
    ausgehender externer Teams-Anruf bricht direkt ab: Guten Tag Das Problem besteht seit einiger Zeit und die Annahme, dass es sich um ein Admin-seitiges Problem seitens der externen Gegenstelle handelt (z.B. eine inkompatible Hybridumgebung, sprich...
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