• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

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
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.
 
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:
&#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:
Şu satırı :

Kod:
                         .writeline sh.Cells(i, 6)

Şu şekilde :

Kod:
                        .writeline Replace(sh.Cells(i, 6), ",", ".")

değiştiriniz.
 
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.
 
Geri
Üst