Print edilen sayfanın otomatik kaydedilmesi

Katılım
8 Haziran 2014
Mesajlar
30
Excel Vers. ve Dili
MS 2010
Arkadaşlar merhaba,

Ben bir excel sheet içerisinde ayarladığım bir yazdırma alanı var. Sürekli olarak bunu doldurup direk çıktısını alıyorum.
Ama bu dosyaların sonradan kaybolma ihtimaline karşın, ben Ctrl+P yaptığımda o sayfayı yazdırırken aynı anda daha önceden belirlenmiş bir klasöre otomatik olarak bu sayfayı PDF yada başka bir formatta kaydetsin istiyorum.

Bu mümkün müdür?
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,704
Excel Vers. ve Dili
Excel 2019 Türkçe
Böyle deneyin.
Kod:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
    sb_Copy_Save_Worksheet_As_Workbook
End Sub

Sub sb_Copy_Save_Worksheet_As_Workbook()
    Dim wb As Workbook
    Set wb = Workbooks.Add
    ActiveSheet.PrintPreview
    ThisWorkbook.Sheets("Sayfa1").Copy Before:=wb.Sheets(1)
    wb.SaveAs "C:\" & Replace(Replace(Now, "/", "."), ":", ".") & ".xlsx"
End Sub
Kaynak: http://analysistabs.com/vba/save-sheet-as-workbook-excel-macro-code/
 
Katılım
8 Haziran 2014
Mesajlar
30
Excel Vers. ve Dili
MS 2010
Peki bunu nereye nasıl ekliyoruz :)

Üç beş formülasyon yazmışlığım var hepsi bu. Çok excel'den anlamam açıkçası.


Böyle deneyin.
Kod:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
    sb_Copy_Save_Worksheet_As_Workbook
End Sub

Sub sb_Copy_Save_Worksheet_As_Workbook()
    Dim wb As Workbook
    Set wb = Workbooks.Add
    ActiveSheet.PrintPreview
    ThisWorkbook.Sheets("Sayfa1").Copy Before:=wb.Sheets(1)
    wb.SaveAs "C:\" & Replace(Replace(Now, "/", "."), ":", ".") & ".xlsx"
End Sub
Kaynak: http://analysistabs.com/vba/save-sheet-as-workbook-excel-macro-code/
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,704
Excel Vers. ve Dili
Excel 2019 Türkçe
1-Alt+F11 tuşlarına basın
2-ThisWorkBook kısmına verdiğim kodu ekleyin.
 
Katılım
8 Haziran 2014
Mesajlar
30
Excel Vers. ve Dili
MS 2010
1-Alt+F11 tuşlarına basın
2-ThisWorkBook kısmına verdiğim kodu ekleyin.
Dediğiniz gibi yaptım ama olmadı.

Kodu aşağıdaki gibi düzenledim ve klasörü belirttim:

Kod:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
    sb_Copy_Save_Worksheet_As_Workbook
End Sub

Sub sb_Copy_Save_Worksheet_As_Workbook()
    Dim wb As Workbook
    Set wb = Workbooks.Add
    ActiveSheet.PrintPreview
    ThisWorkbook.Sheets("Sayfa1").Copy Before:=wb.Sheets(1)
    wb.SaveAs "C:\Users\Admin\Desktop\OdemeTalepleri" & Replace(Replace(Now, "/", "."), ":", ".") & ".xlsx"
End Sub
ThisWorkBook kısmına direk bu kodu yapıştırdım. Sonrada print ettim bir kaç kez ama hiç birinde kaydetmedi dosyayı.
 
Katılım
8 Haziran 2014
Mesajlar
30
Excel Vers. ve Dili
MS 2010
Ayrıca benim bu dökümanlarımı kimin adına çıkardığım C8 hücresinde yazıyor. dosyanın adını da C8'den alıp yanına da o anın tarihini atması mümkün müdür?
 
Katılım
8 Haziran 2014
Mesajlar
30
Excel Vers. ve Dili
MS 2010
Kaydetti. En son bir buton ekledim ve kod ile butonu birleştirdim. Çalıştı. Ancak şöyle bir durum var şuan.
Bu isim meselesi. Direk tarih ve saat yazıyor.
Ben bunun başına da C8 hücresinde yer alan bilgi + tarih saat olsun istiyorum.
Bunu nasıl ekleyebiliriz??
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,704
Excel Vers. ve Dili
Excel 2019 Türkçe
İlgili satırı aşağıdaki ile değiştirin.
Kod:
wb.SaveAs "C:\Users\Admin\Desktop\OdemeTalepleri" & [COLOR=RED][C8][/COLOR] & Replace(Replace(Now, "/", "."), ":", ".") & ".xlsx"
End Sub
 
Katılım
8 Haziran 2014
Mesajlar
30
Excel Vers. ve Dili
MS 2010
Bunu ekledim ilgili yere ve artık Error veriyor.
Error görüntüsü ekte.

Birde error'a END deyince Excel hata veriyor duruyor ve tekrar başlatılıyor.

:yardim:
 

Ekli dosyalar

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,704
Excel Vers. ve Dili
Excel 2019 Türkçe
Bu şekilde dener misiniz ? Dosya yolunu "C:\" dizini olarak belirledim eğer kod çalışırsa yolu istediğiniz biçimde değiştirebilirsiniz.
Kod:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
    sb_Copy_Save_Worksheet_As_Workbook
End Sub

Sub sb_Copy_Save_Worksheet_As_Workbook()
    Dim wb As Workbook
    Set wb = Workbooks.Add
    ActiveSheet.PrintPreview
    ThisWorkbook.Sheets("Sayfa1").Copy Before:=wb.Sheets(1)
    wb.SaveAs "C:\" & [c8] & " " & Replace(Replace(Now, "/", "."), ":", ".") & ".xlsx"
End Sub
 
Üst