Yazdırılan sayfayı text dosyasına aktarmak

Katılım
13 Ocak 2008
Mesajlar
142
Excel Vers. ve Dili
2003 office
Arkadaşlar excel de bir sayfa yazdırdığım da sayfayı txt dosyası olarak F/:Çıktı sayfasına yazdırma saati ve tarihiyle atmasını istiyorum bunu nasıl yapabilirim hepinize şimdiden teşekkürler...
 
Son düzenleme:
Katılım
13 Ocak 2008
Mesajlar
142
Excel Vers. ve Dili
2003 office
Arkadaşlar bunu yapamaz mıyız yapazmıyorsak acı gerçeği saklamayın benden söyleyin :)
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,354
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Örnek dosya ekleyiniz.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,354
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
ThisWorkbook:

Kod:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
    Application.OnTime Now + _
        TimeSerial(0, 0, 2), "Print_Text"
End Sub
Module1:

Kod:
Sub Print_Text()
Dim sat&, sut%, arr()
Dim x%, y&, z$

With ActiveSheet
sut = .[a1].CurrentRegion.Columns.Count
sat = .[a1].CurrentRegion.Rows.Count

ReDim arr(sut - 1)

Open "F:\Çıktı\" & _
    Format(Now, "yyyymmdd" & "_" & "hhss" & ".txt") For Output As #1
    
    For y = 1 To sat
    
        For x = 1 To sut
            arr(x - 1) = .Cells(y, x)
        Next
        
        z = Join(arr, ";")
        
        Print #1, z
        
    Next

Close #1

End With

Erase arr

End Sub
 
Katılım
13 Ocak 2008
Mesajlar
142
Excel Vers. ve Dili
2003 office
ThisWorkbook:

Kod:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
    Application.OnTime Now + _
        TimeSerial(0, 0, 2), "Print_Text"
End Sub
Module1:

Kod:
Sub Print_Text()
Dim sat&, sut%, arr()
Dim x%, y&, z$

With ActiveSheet
sut = .[a1].CurrentRegion.Columns.Count
sat = .[a1].CurrentRegion.Rows.Count

ReDim arr(sut - 1)

Open "F:\Çıktı\" & _
    Format(Now, "yyyymmdd" & "_" & "hhss" & ".txt") For Output As #1
    
    For y = 1 To sat
    
        For x = 1 To sut
            arr(x - 1) = .Cells(y, x)
        Next
        
        z = Join(arr, ";")
        
        Print #1, z
        
    Next

Close #1

End With

Erase arr

End Sub
syn Zeki GÜRSOY
yazdığınız kod işe yaradı: C:/Çıktı ya atınca oluyor ancak txt F:/Çıktı attığım zaman olmuyor Bunun nedeni F'in flash disk olması olabilir mi
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,354
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Flash diskinizde "Çıktı" isminde klasör olduğundan emin misiniz?
 
Katılım
13 Ocak 2008
Mesajlar
142
Excel Vers. ve Dili
2003 office
çok teşekkürler bu işlemi yaptım ama txt dosyasını excel pormatında açtığım zaman eski haliyele açılmıyor sıralar ve tablolar değişiyor bnun nedeni nedir??
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,354
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Veri > Metni Sütunlara Dönüştür komutunu verin ve sihirbazın ikinci adımında ayracı ";" noktalı virgül olarak belirleyin. Sütunlara dağılacaktır.
 
Katılım
7 Ocak 2008
Mesajlar
53
Excel Vers. ve Dili
office2013
Altın Üyelik Bitiş Tarihi
08.12.2019
sutun genişliği

peki ustat sutun genişliğini ayarlayabilirmiyiz. örn: a4 sutunu 10 karakter olsa dahi 5 karakter - b4 sutunu 2 karakter olsa dahi 9 karakter 6 karakterini boşluk gibi yani txt ye aktarılan sutunun karakter uzunluğunu biz belirleye bilirmiyiz.
değerli bilgi ve fikirleriniz ve paylaşımınız için şimdiden teşekkur ediyorum
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,354
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
peki ustat sutun genişliğini ayarlayabilirmiyiz. örn: a4 sutunu 10 karakter olsa dahi 5 karakter - b4 sutunu 2 karakter olsa dahi 9 karakter 6 karakterini boşluk gibi yani txt ye aktarılan sutunun karakter uzunluğunu biz belirleye bilirmiyiz.
değerli bilgi ve fikirleriniz ve paylaşımınız için şimdiden teşekkur ediyorum
Elbette. Kullanıcı tanımlı tip (type) kullanarak kolayca yapılabilir. Aşağıdaki kodu deneyerek/değiştirerek sonucu gözlemleyin.

Kod:
Type bilgiler
    adı As String * [B]50[/B]
    soyadı As String * [B]70[/B]
End Type

Dim textdata As bilgiler

Sub test()
textdata.adı = "excel"
textdata.soyadı = "web.tr"

Open "c:\test.txt" For Output As #1
    Print #1, textdata.adı; textdata.soyadı
Close #1
End Sub
 
Katılım
13 Ocak 2008
Mesajlar
142
Excel Vers. ve Dili
2003 office
çok teşekkürler gerçekten çokk yararlı bir konu oldu eline sağlık
 
Katılım
7 Ocak 2008
Mesajlar
53
Excel Vers. ve Dili
office2013
Altın Üyelik Bitiş Tarihi
08.12.2019
tşk

sayın Zeki Gürsoy üstad çok teşekkür ediyorum kolay gelsin
 
Üst