Bu yazımızda Excel dosyasından bir butona basınca VBA ile belirlediğimiz range deki değerleri belirlediğimiz adresteki Text dosyasına yazdıracağız arkadaşlar.

Developer sekmesinde butonumuzu sayfamıza ekleyelim ve aşağıdaki gibi kafanıza göre istediğiniz yere veri oluşturun.

Excel VBA Buton ile text dosyasına yazmak

Excel VBA Buton ile text dosyasına yazmak

Sonra butona çift tıklayarak excel vba editörümüzü açalım ve aşağıdaki kodumuzu ekleyelim. Aşağıdaki kodda dikkat etmeiz gereken yada değiştirmeniz gereken bir kaç yeri belirteyim.

Birincisi dosya adresi: Dosya adresini ister ilk satırdaki gibi zaman bilgisini de ekletip yazdırabilirsiniz. İsterseniz alt satırındaki gibi tek dosya yazıp hep aynı dosyaay basabilirsiniz.

İkincisi range bölgesini belirleme: Burayıda kendinize göre belirleyebilirsiniz.

' www.kaizen40.com
 
Private Sub CommandButton1_Click()
    Dim filename As String, lineText As String
    Dim myrng As Range, i, j
    
    'filename = ThisWorkbook.Path & "\textfile-" & Format(Now, "ddmmyy-hhmmss") & ".txt"    ' tarihi dosya adresine yaz
    filename = ThisWorkbook.Path & "\text.txt"      ' sadece dosya adresi
    
    Open filename For Output As #1
    
    Set myrng = Range("A1", "A3")           ' kaydedilecek excel bölgesini seç
    
    For i = 1 To myrng.Rows.Count
        For j = 1 To myrng.Columns.Count
            lineText = IIf(j = 1, "", lineText & ",") & myrng.Cells(i, j)
        Next j
        Print #1, lineText
    Next i
    
    Close #1
End Sub
Excel Notepad Veri Yazma

Excel Notepad Veri Yazma

Bir arkadaşımızın isteği üzerine Excel’ deki her satırı farklı klasörlerdeki text dosyalarına yazdırmak istiyorsanız aşağıdaki kodu kullanabilirsiniz.

Private Sub CommandButton1_Click()
    
    Dim filename As String, lineText As String
    Dim myrng As Range, i, j
    
    Set myrng = Range("A1", "A3")           ' kaydedilecek excel bölgesini seç
    
    For f = 1 To 3
        filename = ThisWorkbook.Path & "\" & f & "\text.txt"        ' sadece dosya adresi
        Open filename For Output As #1                              ' dosyayi ac
    
        Set myrng = Range("A1", "A3")           ' kaydedilecek excel bölgesini seç
        Print #1, IIf(1, "", lineText & ",") & myrng.Cells(f, 1)
        
        Close #1
    Next f
    
End Sub
Excel Notepad Veri Yazma

Excel Notepad Veri Yazma


2 yorum

Esengül Çavdar · 15 Temmuz 2018 14:23 tarihinde

Merhaba,
Excelde mevcut olan verileri txt dosyasına aktarmak istiyorum, ancak yukarıda belirtmiş olduğunuz formattan biraz farklı. Şöyle ki: excelde 20 satırlık bir veri mevcut ve her satır için bir klasörüm var. Ben bütün verileri tek bir txt dosyasına aktarmak yerine her bir satır için ayrı bir txt dosyası oluşturmak istiyorum. Örneğin; 1. klasörün içindeki ilgili txt dosyasına exceldeki 1. satırdaki veriyi yaz , 2. klasör için 2. satırı yaz…
Oluşturduğum macroyu aşağıda paylaştım. Bununla oluşturduğum her txt dosyasına exceldeki bütün verileri aktarabiliyorum. Yardımcı olursanız sevinirim.

Sub Düğme2_Tıkla()
‘text dosyasına excelden veri aktarmak için

‘Declaring the variables
Dim FileName, sLine, Deliminator As String
Dim LastCol, LastRow, FileNumber As Integer
Dim Folder As String
Dim File1 As String
Dim File2 As String

For x = 1 To 3

Folder = “C:\test”
File1 = x
File2 = “GM_List.txt”

‘Excel Location and File Name
FileName = Folder & “\” & File1 & “\” & File2

‘Identifying the Last Cell
LastCol = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Column
LastRow = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
FileNumber = FreeFile

‘Creating or Overwrighting a text file
Open FileName For Output As FileNumber

‘Reading the data from Excel using For Loop
For i = 1 To LastRow
For j = 1 To LastCol

‘Removing Deliminator if it is wrighting the last column
If j = LastCol Then
sLine = sLine & Cells(i, j).Value
Else
sLine = sLine & Cells(i, j).Value & Deliminator
End If
Next j

‘Wrighting data into text file
Print #FileNumber, sLine
sLine = “”
Next i

‘Closing the Text File
Close #FileNumber

‘Generating message to display
MsgBox “Text file has been generated”

Next x

End Sub

    yeryuzu · 16 Temmuz 2018 13:04 tarihinde

    Basit olarak 3 satırı okuyup farklı klasörlerdeki text dosyalarına ekleyen kodu yazıya ekledim. İnceleyerek kendi kodunuza entegre edebilirsiniz. İyi çalışmalar.

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.