Text Oluşturma (Çalışma kitabının her sayfası için ayrı text nasıl yapılır)

Katılım
25 Haziran 2006
Mesajlar
36
Excel Vers. ve Dili
Ofis 2010 ve 2016
Altın Üyelik Bitiş Tarihi
28.01.2020
Arkadaşlar iki gündür denemediğim yol kalmadı işin acemisine çok zor geliyor İnşallah sizden bir cevap gelir. Örnekte gerekli açıklamaları yaptım benim istediğim Excel çalışma kitabının bir sütununu text dosyası haline getirme fakat çalışma kitabının her sayfası için ayrı bir text dosyası oluşacak oluşan dosyalarda o sayfanın adını alacak. Oluşan text dosyalarıda çalışma kitabının adını alacak bir klasör içinde toplanacak örneğe bakarsanız çok sevinirim şimdiden teşekkürler.
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Aşağıdaki kodları, standart bir modül sayfasına kopyalayıp çalıştırınız.

Kod:
Sub Text_Dosya_Yarat()
Dim FSO As Object
Dim klasor As Object
Dim dizin As String
Dim sh As Worksheet
Dim i As Integer
Set klasor = CreateObject("Shell.Application").BrowseForFolder(0, "Lütfen bir klasör seçin !", &H100)
If klasor Is Nothing Then
    MsgBox "Herhangi bir klasör seçmediniz", vbCritical, "UYARI"
Else
    dizin = klasor.Items.Item.Path
End If
Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.FolderExists(dizin & "\" & Replace(ThisWorkbook.Name, ".xls", "")) Then
        MsgBox "Bu isimde bir klasör zaten var", vbCritical, "UYARI"
        Exit Sub
Else
        FSO.CreateFolder dizin & Application.PathSeparator & Replace(ThisWorkbook.Name, ".xls", "")
 
        For Each sh In ThisWorkbook.Worksheets
            With FSO.CreateTextFile(dizin & Application.PathSeparator & Replace(ThisWorkbook.Name, ".xls", "") & Application.PathSeparator & sh.Name & ".txt")
                 For i = 3 To sh.Cells(65536, 6).End(xlUp).Row
                     If sh.Cells(i, 6) <> Empty Then
                        .writeline sh.Cells(i, 6)
                     End If
                 Next i
                 .Close
            End With
        Next
End If
Set FSO = Nothing
Set klasor = Nothing
End Sub
 
Son düzenleme:
Katılım
25 Haziran 2006
Mesajlar
36
Excel Vers. ve Dili
Ofis 2010 ve 2016
Altın Üyelik Bitiş Tarihi
28.01.2020
&#199;ok te&#351;ekk&#252;rler tam istedi&#287;im gibi yanl&#305;z;

081542L;000000028,60 &#351;eklinde at&#305;yor
081542L;000000028.60 bu &#351;ekilde nas&#305;l yapar&#305;z.(virg&#252;l nokta olacak)
 
Son düzenleme:
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Şu satırı :

Kod:
                         .writeline sh.Cells(i, 6)
Şu şekilde :

Kod:
                        .writeline Replace(sh.Cells(i, 6), ",", ".")
değiştiriniz.
 
Katılım
25 Haziran 2006
Mesajlar
36
Excel Vers. ve Dili
Ofis 2010 ve 2016
Altın Üyelik Bitiş Tarihi
28.01.2020
Ger&#231;ekten &#231;ok g&#252;zel bir &#231;al&#305;&#351;ma oldu elinize sa&#287;l&#305;k te&#351;ekk&#252;rler.
 
Üst