Txt Makro

leonadies

Excel Derya Deniz Bizde Kulaç Atmaya Çalışıyoruz:)
Altın Üye
Katılım
12 Şubat 2015
Mesajlar
515
Excel Vers. ve Dili
Office 2016 TR 64 Bit Windows
Altın Üyelik Bitiş Tarihi
01-02-2027
Üstadlar Merhaba A sütunundan M sutununa kadar (Maksimum da 5000 satır) olan hücre verilerini "C:\Text" klasörü içine Txt uzantılı olarak makro ile nasıl çıkartabilirim?

Birde makroyu çalıştırınca TXT yi bu yola kaydederken hangi isimle kaydedeceğini sorsun istiyorum. Mümkün mü?

Sitede var olan kodları denedim ama yapamadım
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,701
Excel Vers. ve Dili
Excel 2019 Türkçe
Böyle deneyin.
Kod:
Sub txtOlustur()
    Yol = ActiveWorkbook.Path
    Open Yol & "\" & "xx.TXT" For Output As #1

    For i = 2 To [a65536].End(3).Row - 1
    Print #1, Cells(i, 1) & vbTab _
     & Cells(i, 2) & vbTab _
     & Cells(i, 3) & vbTab _
     & Cells(i, 4) & vbTab _
     & Cells(i, 5) & vbTab _
     & Cells(i, 6) & vbTab _
     & Cells(i, 7) & vbTab _
     & Cells(i, 8) & vbTab _
     & Cells(i, 9) & vbTab _
     & Cells(i, 11) & vbTab _
     & Cells(i, 12) & vbTab _
     & Cells(i, 13)

    Next
    Close #1
    MsgBox "Text Dosyası Oluşturuldu"
End Sub
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Eğer C:\Text klasörü varsa;

Kod:
Sub Test()
    'Haluk - 18/07/2019
    'E-Posta: sa4truss@gmail.com
    '
    Dim myFile As Variant, adoStream As Object, NoA As Long, i As Long
    Const adSaveCreateOverWrite = 2
    
    myFile = Application.GetSaveAsFilename(InitialFileName:="C:\Text", fileFilter:="Text Files (*.txt), *.txt")
    If myFile = False Then Exit Sub
    
    Set adoStream = CreateObject("ADODB.Stream")
    adoStream.Charset = "utf-8"
    adoStream.Type = 2
    adoStream.Open
    
    NoA = Range("A" & Rows.Count).End(xlUp).Row
    For i = 1 To NoA
        For j = 1 To 13
            adoStream.WriteText Cells(i, j) & vbTab
        Next
        adoStream.WriteText vbCrLf
    Next
    
    adoStream.SaveToFile myFile, adSaveCreateOverWrite
    adoStream.Close
    
    Set adoStream = Nothing
End Sub
 

leonadies

Excel Derya Deniz Bizde Kulaç Atmaya Çalışıyoruz:)
Altın Üye
Katılım
12 Şubat 2015
Mesajlar
515
Excel Vers. ve Dili
Office 2016 TR 64 Bit Windows
Altın Üyelik Bitiş Tarihi
01-02-2027
Sayın Hamitcan

Yol sabit dosyalar hep C:\Text klasörüne kayıt olacak. Kayıt yaparken sadece TXT uzantılı dosya adını ne diye kayıt etmek isteğimi sorsun yeter. Sizin makro ile isim sormadan excel nerede ise oraya kayıt atıyor. Ama çalışmasında sorun yok
 

leonadies

Excel Derya Deniz Bizde Kulaç Atmaya Çalışıyoruz:)
Altın Üye
Katılım
12 Şubat 2015
Mesajlar
515
Excel Vers. ve Dili
Office 2016 TR 64 Bit Windows
Altın Üyelik Bitiş Tarihi
01-02-2027
Kod:
Sub Test()
'Haluk - 18/07/2019
'E-Posta: sa4truss@gmail.com
'
Dim myFile As Variant, adoStream As Object, NoA As Long, i As Long
Const adSaveCreateOverWrite = 2

myFile = Application.GetSaveAsFilename(InitialFileName:="C:\Text", fileFilter:="Text Files (*.txt), *.txt")
If myFile = False Then Exit Sub

Set adoStream = CreateObject("ADODB.Stream")
adoStream.Charset = "utf-8"
adoStream.Type = 2
adoStream.Open

NoA = Range("A" & Rows.Count).End(xlUp).Row
For i = 1 To NoA
For j = 1 To 13
adoStream.WriteText Cells(i, j) & vbTab
Next
adoStream.WriteText vbCrLf
Next

adoStream.SaveToFile myFile, adSaveCreateOverWrite
adoStream.Close

Set adoStream = Nothing
End Sub

Oldu teşekkür ederim :) Ancak şöyle bir durum oluştu. Veri sekmesi diye bir sayfam var. Bilgileri buraya giriyorum. Aslında buradan bazı bilgileri data sekmesine atıyor. Ben data sekmesindekileri txt yapmak istiyorum. Eksik bilgi vermiş oldum kusura bakmayın
 
Son düzenleme:

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,701
Excel Vers. ve Dili
Excel 2019 Türkçe
Gerçi Haluk Üstad farklı bir çözüm vermiş ama ben yine de sorunuzu yanıtlayayım.
Kod:
Sub txtOlustur()
    Yol = "c:\Text"
    dosyaismi = InputBox("Dosya ismini girin", , ".txt")
    Open Yol & "\" & dosyaismi For Output As #1

    For i = 2 To [a65536].End(3).Row - 1
    Print #1, Cells(i, 1) & vbTab _
     & Cells(i, 2) & vbTab _
     & Cells(i, 3) & vbTab _
     & Cells(i, 4) & vbTab _
     & Cells(i, 5) & vbTab _
     & Cells(i, 6) & vbTab _
     & Cells(i, 7) & vbTab _
     & Cells(i, 8) & vbTab _
     & Cells(i, 9) & vbTab _
     & Cells(i, 11) & vbTab _
     & Cells(i, 12) & vbTab _
     & Cells(i, 13)

    Next
    Close #1
    MsgBox "Text Dosyası Oluşturuldu"
End Sub
 

leonadies

Excel Derya Deniz Bizde Kulaç Atmaya Çalışıyoruz:)
Altın Üye
Katılım
12 Şubat 2015
Mesajlar
515
Excel Vers. ve Dili
Office 2016 TR 64 Bit Windows
Altın Üyelik Bitiş Tarihi
01-02-2027
Teşekkür ederim hamitcan hocam. Bu kodda gayet uygun :)
 
Üst