Bu yazımızda bir kaynak tarafından üretilen verimizin excel dosyasına makro ile Text Dosyası Okuma aktarmayı göreceğiz. Bazı durumlarda direk verilerinizi excel dosyanızada yazabilirsiniz ama bazı durumlarda daha hızlı ve basit yöntemleri tercih ettiğinizde “bunları nasıl excele aktarağım” diye canınız sıkılmasın yazılımda her şey mümkün 🙂

Dosyayı excel’e aktarma konusunda excelin için hazır araçlar olsa da biz şimdi kendi ürettiğimiz bir formattaki veriyi istediğimiz şekilde işleyip excel’e yazdırmayı göreceğiz.

İlk olarak “raw data” dediğimiz verimizi üretelim. Ben tamamen atmasyon olarak bir formatta verimi oluşturdum.

Aşağıdaki örnekte veri bloğumu * ile başlatıp her paket arasına ; koydum ve her satır arasına da yine * koydum. Tamamen atmasyon değerler yazdım. Bunu bir .txt dosyası oluşturup iine kaydedin. İsmi hiç önemli değil. Önemli olan algoritmadır arkadaşlar.

*1;MARKA1;MODEL1;ISIM1;A1;B1;*2;MARKA2;MODEL2;ISIM2;A2;B2;*3;MARKA3;MODEL3;ISIM3;A3;B3;*4;MARKA4;MODEL4;ISIM4;A4;B4;*

İkinci olarak Excel dosyamıza bir buton ekleyelim. Daha önceki yazılarımızda bahsetmiştik. Developer sekmesinden design mode a geçip butonumuzu ekliyoruz. Sonra oluşturduğumuz .txt dosyasının adresini butonun yanındaki bir ücreye tam olarak yazın.

Excel VBA text dosyası okuma

Buradaki amacımız butona bastığımızda F2 hücresinde yazan adresteki dosyanın içine girip verimizi işleyerek ilgili kısımları ilgili hücreye sırayla yazma işlemini kod yazarak yapmak. Şekil olsun diye de 3. satıra sutun başlıklarını yine atmasyon olarak yazdım.

Şimdi butonumuza çift tıklayarak Excel VBA da butonun kod sayfasına girin. Eğer butona basılıyormuş gibi oluyorsa design mode da değilsinizdir. Design mode a geçin.

Sonra aşağıdaki kodu aynen yapıştırın.

Dim satir As Integer
Dim sutun As Integer
Dim bilgi As String

Private Sub CommandButton1_Click()
    satir = 3                                               ' baslangic satiri
    sutun = 0                                               ' baslangic sutunu
    bilgi = ""
    
    Open Cells(2, 6) For Input As #1                        ' dosyayi aç (adresin bulundugu hucre)

    Do Until EOF(1)
        Input #1, rawData                                   ' tüm satirlari oku
        
        For i = 0 To Len(rawData)                           ' karakter uzunluðunu bul
            If Mid(rawData, i + 1, 1) = "*" Then            ' tek tek karakterleri oku
                satir = satir + 1                           ' * karakteri geldiginde alt satira ve satir basina geç
                sutun = 0
                bilgi = ""
            Else
                If Mid(rawData, i + 1, 1) = ";" Then        ' ; karakteri geldiginde bir sonraki hücreye geç
                    sutun = sutun + 1
                    Cells(satir, sutun) = bilgi             ' birlestirilen paketi hücreye yapistir
                    bilgi = ""
                Else
                    bilgi = bilgi & Mid(rawData, i + 1, 1)  ' paketi birlestir
                End If
            End If
        Next i
    Loop
    Close                                                   ' acilan dosyayi kapat
    
End Sub

Excel VBA Buton ile text dosyası okuma

Butona basılınca gördüğünüz gibi saniyeler içerisinde verimiz istediğimiz şekilde sayfamıza geldi. Daha sonra bu verimizi istediğimiz gibi pivot table ile anlamlandırabiliriz.


1 yorum

ömer · 28 Ağustos 2019 12:13 tarihinde

hata veriyo 26.satır

Bir cevap yazın

Avatar placeholder

E-posta hesabınız yayımlanmayacak.

This site uses Akismet to reduce spam. Learn how your comment data is processed.