Dizin İçindeki Text Dosyalardan Veri Almak

Katılım
13 Mayıs 2007
Mesajlar
32
Excel Vers. ve Dili
excell 2003
turkce
Merhaba sevgili arkadaşlar.

bir dizin içinde pekçok text dosyam var.

makroya kayıt yaparak bu dizin içindeki bir text dosyasından istediğim şekilde verileri aldım.

ancak bu makro çalıştırıldığında "c:\text" dizini içersinde ne kadar text dosyası varsa tümünden aynı şekilde veri alsın istiyorum.
aldığı verileri de dosya ismiyle aynı isimde bir sheet oluşturarak oraya kaydetsin.

forumda benzer örnekler gördüm ama, bir türlü beceremedim.
yardımcı olabilir misiniz ?
şimdiden çok teşekkür ederim.


tek bir text dosyası için kaydettiğim makro aşağıda :

=========================================

Sub Makro1()
Workbooks.OpenText Filename:="C:\TEXT\ISTANBUL_06.09.2007.txt", Origin _
:=857, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 2), _
Array(10, 5), Array(16, 1), Array(23, 2), Array(34, 2), Array(40, 2), Array(45, 9), Array( _
46, 2), Array(52, 9)), TrailingMinusNumbers:=True
End Sub

=========================================
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,056
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Bu text dosyalarından birkaç tane örnek eklermisiniz.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,259
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Dosyalar virgül ayraçlı ise sorun olmaz sanırım.
Kod:
Sub Veri_Al()
Dim cn     As Object
Dim rs     As Object
Dim myPath As String

myPath = "C:\text\"
d = Dir(myPath)

    Do While d <> ""
    
        Set cn = CreateObject("ADODB.Connection")
    
        cn.Open _
        "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & myPath & _
        ";Extended Properties=""text;HDR=No;FMT=Delimited"""
    
        Set rs = cn.Execute("SELECT * FROM " & d)
    
        Worksheets.Add , Sheets.Count
        Sheets(Sheets.Count).Name = d
        Sheets(Sheets.Count).[a1].CopyFromRecordset rs
        
        rs.Close
        cn.Close
    Loop
    
    Set rs = Nothing
    Set cn = Nothing
End Sub
 
Katılım
13 Mayıs 2007
Mesajlar
32
Excel Vers. ve Dili
excell 2003
turkce
text dosyalarından birkaç örnek ve excel dosyasını gönderiyorum.
excel dosyasına konuyu açıklayıcı bilgi yazdım.
ilginiz için çok teşekkür ederim.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,310
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Ekli dosyaya bir göz atarsınız ....
 
Son düzenleme:

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,259
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Haluk bey'in &#246;rne&#287;inde g&#246;zden ka&#231;an &#351;u ilaveyi yapmak gerekiyor.

Kod:
Open [B]MyPath &[/B] MyFile For Input As #1
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,310
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Evet do&#287;ru, g&#246;z&#252;mden ka&#231;m&#305;&#351; ...

Dosya yukar&#305;daki mesaj ba&#351;l&#305;&#287;&#305; alt&#305;nda yenilendi.
 
Katılım
13 Mayıs 2007
Mesajlar
32
Excel Vers. ve Dili
excell 2003
turkce
Değerli ustalarım Sayın Haluk ve Sayın Anemos ilginiz için çok teşekkür ederim.

teşekkür cevabım geciktiği için kusura bakmayın.

Sayın Haluk'un kodları ile ve Anemos'un eklentisine rağmen
runtime 53
file not found
hatası alıyordum ve bunu çözmekle meşguldüm.

sonunda becerdim, eksik olan "\" işaretini yerine koydum ve bir hevesle "bakın ben ne buldum" diye yazmak için forumu açtığımda bir de ne göreyim, siz bana fırsat vermeden çoktan gerekli düzenlemeyi yapmışsınız.

Benim için çok faydalı oldu bu konu.
Umarım izleyen arkadaşlarda yararlanmışlardır.

Tekrar teşekkür ediyorum.
Elinize, emeğinize, yardımlaşma ruhunuza ve aklınıza sağlık....
 
Üst