Log Dosyasını Excel'de Raporlama

Cevapla
makarabulut
Mesajlar: 4
Kayıt: Sal Kas 14, 2023 3:21 pm
Lokasyon: İstanbul
Meslek: Yazılım Mühendisi
Adınız: Mehmet Ali
Soyadınız: Karabulut

Log Dosyasını Excel'de Raporlama

Mesaj gönderen makarabulut »

Merhaba,
Aşağıdaki gibi hata log'larının olduğu yüzlerce .txt uzantılı dosyam var. Bu dosyalar "dosyadı-tarih" şeklinde adlandırılıyor. (Örneğin ErrorLog-14.11.2023) Amacım istediğim dosyayı seçerek(birden fazla dosya da seçilebilir) dosya içindeki her bir hatanın adının, tarihinin, tekrar sayısının ve hata içeriğinin olduğu raporu Excel üzerinde oluşturmak. Bunu VBA kullanarak nasıl yapabilirim ?
Teşekkürler.

Örnek data (bu datanın bir txt dosyasında olduğunu ve binlerce satırdan oluştuğunu varsaymalıyız):

2023-11-14 00:00:00,123 |1|||ERROR|Ex: Lorem ipsum dolor sit amet, consectetur adipiscing elit.
2023-11-14 00:00:00,546 |2|ERROR||||Ex: Lorem ipsum dolor sit amet, consectetur adipiscing elit.
2023-11-14 00:00:00,624 |1|ERROR|||Ex: Lorem ipsum dolor sit amet, consectetur adipiscing elit.
2023-11-14 00:00:00,555 |111|ERROR|ExCode: Lorem ipsum dolor sit amet, consectetur adipiscing elit.
2023-11-14 00:00:00,666 |111|ERROR||ExCode: Lorem ipsum dolor sit amet, consectetur adipiscing elit.Lorem ipsum dolor sit amet, consectetur adipiscing elit.Lorem ipsum dolor sit amet, consectetur adipiscing elit.
156156156 xyz Lorem ipsum dolor sit amet, consectetur adipiscing elit.Lorem ipsum dolor sit amet, consectetur adipiscing elit.
2023-11-14 01:00:00,199 |1|ERROR|Ex: Lorem ipsum dolor sit amet, consectetur adipiscing elit.
2023-11-14 01:00:00,266 |2|ERROR|Ex: Lorem ipsum dolor sit amet, consectetur adipiscing elit.
erseldemirel
Mesajlar: 133
Kayıt: Cmt Haz 24, 2023 12:23 am
Web Sitesi: https://erseldemirel.com.tr/
Adınız: Ersel
Soyadınız: Demirel

Re: Log Dosyasını Excel'de Raporlama

Mesaj gönderen erseldemirel »

Merhaba bu örnek kod ile txt dosyalarını seçip; içeriklerini excel dosyasına aktarır. Aktarılan verilerde formül yada vba ile gerekli analizler yapılabilir.

Kod: Tümünü seç

Sub test()
    Set SecilenDosyalar = Application.FileDialog(msoFileDialogOpen)
    With SecilenDosyalar
        .AllowMultiSelect = True
        .Filters.Clear
        .Filters.Add "Metin Dosyaları", "*.txt"
        .Title = "Txt Dosyalarını Seç"
        If .Show = -1 Then
            For Each SecilenDosya In .SelectedItems
                DosyaYolu = SecilenDosya
                DosyaNumarasi = FreeFile
                Open DosyaYolu For Input As #DosyaNumarasi
                
                Satir = Sheets("test").Cells(Rows.Count, 1).End(xlUp).Row + 1
                Do Until EOF(DosyaNumarasi)
                    Line Input #DosyaNumarasi, DosyaIcerik
                    Sheets("test").Cells(Satir, 1).Value = DosyaIcerik
                    Satir = Satir + 1
                Loop
                Close #DosyaNumarasi
            Next SecilenDosya
        Else
            MsgBox "Dosya Seçmediniz!"
        End If
    End With
End Sub
makarabulut
Mesajlar: 4
Kayıt: Sal Kas 14, 2023 3:21 pm
Lokasyon: İstanbul
Meslek: Yazılım Mühendisi
Adınız: Mehmet Ali
Soyadınız: Karabulut

Re: Log Dosyasını Excel'de Raporlama

Mesaj gönderen makarabulut »

erseldemirel yazdı: Çrş Kas 15, 2023 3:08 pm Merhaba bu örnek kod ile txt dosyalarını seçip; içeriklerini excel dosyasına aktarır. Aktarılan verilerde formül yada vba ile gerekli analizler yapılabilir.

Kod: Tümünü seç

Sub test()
    Set SecilenDosyalar = Application.FileDialog(msoFileDialogOpen)
    With SecilenDosyalar
        .AllowMultiSelect = True
        .Filters.Clear
        .Filters.Add "Metin Dosyaları", "*.txt"
        .Title = "Txt Dosyalarını Seç"
        If .Show = -1 Then
            For Each SecilenDosya In .SelectedItems
                DosyaYolu = SecilenDosya
                DosyaNumarasi = FreeFile
                Open DosyaYolu For Input As #DosyaNumarasi
                
                Satir = Sheets("test").Cells(Rows.Count, 1).End(xlUp).Row + 1
                Do Until EOF(DosyaNumarasi)
                    Line Input #DosyaNumarasi, DosyaIcerik
                    Sheets("test").Cells(Satir, 1).Value = DosyaIcerik
                    Satir = Satir + 1
                Loop
                Close #DosyaNumarasi
            Next SecilenDosya
        Else
            MsgBox "Dosya Seçmediniz!"
        End If
    End With
End Sub
Kodu çalıştırdığımda "Subscript out of range" hatası alıyorum. Bu hatayı nasıl çözebilirim ?
erseldemirel
Mesajlar: 133
Kayıt: Cmt Haz 24, 2023 12:23 am
Web Sitesi: https://erseldemirel.com.tr/
Adınız: Ersel
Soyadınız: Demirel

Re: Log Dosyasını Excel'de Raporlama

Mesaj gönderen erseldemirel »

Bu birçok sebepden kaynaklanabilir. Örneğin orada örnekte test sayfası yazılı. Sayfa adlarınız aynı olacak. Yada testi değiştirin. Dosya çektiğiniz txt örnek olarak basitçe kendiniz bir hazırlayın Deneyin
Cevapla
  • Benzer Konular
    Cevaplar
    Görüntüleme
    Son mesaj